Página 1 de 1

exe desde recursos

Publicado: Mié Jun 29, 2011 11:02 am
por Arturo
Buenas,
quiero colocar un ejecutable en recursos tal y como se comentaba en otro
post de hace un tiempo .....
Lo hago de la siguiente manera (editando el fichero rc directamente):
DSFind RCDATA "DSFind.exe"
Tiene 100 kb......
No me da problemas al compilar pero no consigo ejecutarlo.........
METHOD ToolBar3Item1Click( oSender ) CLASS TForm1
local dsfinder
dsfinder:=FindResource(,"DSFind",10)
msgalert(dsfinder) // --->me muestra el handle, o sea que lo ha capturado
bien
execute(dsfinder)
LoadResource(dsfinder)
RETURN Nil
Gracias

exe desde recursos

Publicado: Mié Jun 29, 2011 11:56 am
por jlalin
Arturo,
con FindResource sólo consigues la dirección de memoria del recurso pero
nada más. Tienes que obtener los bytes del recurso, grabarlo en un archivo
y luego ejecutarlo.
Más o menos serí­a así­ (está escrito al vuelo y quizás necesite algún ajuste):
METHOD ToolBar3Item1Click( oSender ) CLASS TForm1
LOCAL hRes := FindResource( , "DSFind", 10 )
LOCAL pRes
LOCAL cExe := Application:cDirectory + "dsfind.exe"
LOCAL hFile
IF !Empty( hRes )
pRes := LoadResource( , hRes )
IF ! Empty( pRes )
hFile := FCreate( cExe )
FWrite( hFile, pRes, Len( pRes ) )
FClose( hFile )
IF File( cExe )
Execute( cExe )
ENDIF
ENDIF
ENDIF
RETURN Nil
Saludos,
José Lalí­n