Devuelve la ruta del programa ejecutable asociado a una determinada extensión
LOCAL lcRetVal,
lcFileExt, lcFileName, lnFileHandle,;lcDirectory, lcResBuff
STORE "" TO lcRetVal, lcFileExt, lcFileName, lcDirectory
tcExt = "SCX" && Extensión a buscar
lcFileExt = UPPER( ALLTRIM( tcExt ))
* Intenta crear un archivo con la extensión pasada
lcFileName = "dav." + lcFileExt
lnFileHandle = FCREATE( lcFileName )
IF lnFileHandle < 1
* No puede crear el archivo
ERROR "No es posible crear el archivo temporal" ;
+ CHR(13) + "Este es necesario para poder continuar"
RETURN lcRetVal
ENDIF
FCLOSE( lnFileHandle )
lcResBuff = SPACE(128)
DECLARE INTEGER FindExecutable IN SHELL32 ;
STRING @cFileName, ;
STRING @cDirectory, ;
STRING @cBuffer
* llama a la función Findexecutable
lnRetVal = FindExecutable( @lcFileName, @lcDirectory, @lcResBuff)
lcMsgTxt = ""
* Determina el valor retornado por la función
DO CASE
CASE lnRetVal = 0
lcMsgTxt = "insuficientes recursos"
CASE lnRetVal = 2
lcMsgTxt = "Archivo especificado no se encuentra"
CASE lnRetVal = 3
lcMsgTxt = "Ruta especificada no se encuentra"
CASE lnRetVal = 11
lcMsgTxt = "Invalido formato del EXE"
CASE lnRetVal = 31
lcMsgTxt = "No esta asociada a ningun archivo la extensión " + lcFileExt
OTHERWISE
* Obtiene la ruta y exe asociado a la extensión
lcRetVal = LEFT(lcResBuff, AT(CHR(0), lcResBuff) - 1)
ENDCASE
* Borra el archivo creado
DELETE FILE (lcFileName)
IF ! EMPTY( lcMsgTxt )
MESSAGEBOX( lcMsgTxt, 16, "Fallo la búsqueda" )
ENDIF
? lcRetVal
Si tienes inquietudes, sígueme en Twitter para contactarme.
Seguir a @davamadort¿Deseas que tu sitio web aparezca en buscadores como google, yahoo, msn?
Contrata un plan de hosting en www.winnethost.com y recibes totalmente gratis el registro de tu sitio web en más de 24 buscadores, entre ellos google, yahoo, msn
El Sitio La Web de Davphantom se encuentra hospedado en WinNetHost.com