Aquí tienes otras formas de conocer el programa
asociado a una extensión...
Utilizando API
=Messagebox(assocExe('c:\ruta\archivo.doc'))
Function AssocExe(pcFile)
cExeFile = ""
Declare Integer FindExecutable In shell32;
string
lpFile, string lpDirectory,;
string
@ lpResult
cExeFile =
Space(250)
If FindExecutable(pcFile, "", @cExeFile) > 32
cExeFile =
Left(cExeFile, At(Chr(0), cExeFile) -1)
Else
cExeFile = ""
Endif
Return cExeFile
Endfunc
Utilizando WSH
oFs = Createobject("Scripting.FileSystemObject")
loFile = oFs.Getfile('c:\ruta\archivo.doc')
? "Tipo: " + transform(loFile.Type)
Otra Utilizando API
Local lcFile
lcFile = 'c:\ruta\archivo.doc'
? "Type: " + GetFileDescription(lcFile)
Function GetFileDescription(lcFullPath)
#Define SHGFI_TYPENAME 0x400
Local lcShFileInfo, lcReturn
Declare SHGetFileInfo In "Shell32" As
SHGetFileInfoA ;
String pszPath,
Long dwFileAttributes, ;
String @psfi, Long
cbFileInfo, Long uFlags
lcShFileInfo = Space(352)
=SHGetFileInfoA(lcFullPath, 0, @lcShFileInfo, 352,
SHGFI_TYPENAME)
lcReturn = alltrim(substr(lcShFileInfo, 273))
Return LEFT(lcReturn, LEN(lcReturn) - 1)
Endfunc