|
|
Visual Basic
A volte può essere utile sapere qual'è l'eseguibile, il programma, che è associato ad una determinata estensione. Ci viene incontro la funzione API FinExecutable.
In un modulo dichiariamo le seguenti costanti e la sottostante funzione:
Private Declare Function FindExecutable Lib "shell32" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal sResult As String) As Long
Private Const MAX_PATH As Long = 260 Private Const ERROR_FILE_NO_ASSOCIATION As Long = 31 Private Const ERROR_FILE_NOT_FOUND As Long = 2 Private Const ERROR_PATH_NOT_FOUND As Long = 3 Private Const ERROR_FILE_SUCCESS As Long = 32 'costante personale Private Const ERROR_BAD_FORMAT As Long = 11
Public Function CercaExe(nome As String) As String Dim success As Long Dim pos As Long Dim sResult As String Dim msg As String
sResult = Space$(MAX_PATH)
success = FindExecutable(nome, vbNullString, sResult)
Select Case success Case ERROR_FILE_NO_ASSOCIATION: msg = "Nessuna associazione" Case ERROR_FILE_NOT_FOUND: msg = "File non trovato" Case ERROR_PATH_NOT_FOUND: msg = "Percorso non trovato" Case ERROR_BAD_FORMAT: msg = "Formato errato"
Case Is >= ERROR_FILE_SUCCESS: pos = InStr(sResult, Chr$(0)) If pos Then msg = Left$(sResult, pos - 1) End If End Select CercaExe = msg End Function |
A questo punto dalla vostra applicazione richiamate il file che volete aprire come segue:
Dim Eseguibile As String Eseguibile = CercaExe("d:\temp\readme.pdf") |
La stringa restituita sarà il percorso dell'eseguibile associato al file che avrete passato come argomento della funzione CercaExe.
|