1 de febrero de 2011

Recuperar el nombre del EXE asociado a una extensión de archivo

Código publicado en el blog del ruso Sergey Berezniker y traducido para PortalFox.

Con este código recuperamos el nombre del archivo ejecutable asociado a una extensión de archivo:

#DEFINE MAX_PATH   260

DECLARE INTEGER FindExecutable IN Shell32 ;
  STRING lpFile, STRING lpDirectory, STRING @lpResult

* Extensión de archivo para buscar el programa asociado
lcFileExt = ".doc"

* Un archivo con la extensión especificada es necesario. 
* Creamos un archivo temporal.
lcTempFile = ADDBS(SYS(2023)) + SYS(2015) + lcFileExt
STRTOFILE("*", lcTempFile )
lcBuffer = SPACE(MAX_PATH)
lnExeHandle= FindExecutable(lcTempFile, "", @lcBuffer)
DO CASE
  CASE lnExeHandle > 32
    lcExeName =  LEFT(lcBuffer, AT(CHR(0), lcBuffer)-1)
  CASE lnExeHandle= 31
    * No hay un programa asociado a esta extensión
    lcExeName = ""
    ? "No hay ninguna aplicación asociada para el tipo de archivo especificado"
  OTHERWISE
    * Algún otro error
    lcExeName = ""
    ? lnResult
ENDCASE

? lcExeName
ERASE (lcTempFile)

Entrada Original: Retrieve name of EXE associated with file extension

No hay comentarios. :

Publicar un comentario

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.