Ultimi Articoli
Visual Basic
Connessione a Database Microsoft SQL
Visual Basic
I controlli ListBox e ComboBox
ASP
Verificare l'esistenza di un file sul Server
Visual Basic
Informazioni aggiuntive sugli ActiveX
Visual Basic
Installare un file .inf

Visual Basic

TIPS & TRICKS - OPERAZIONI SUI FILE - CERCARE L'ESEGUIBILE ASSOCIATO AD UNA ESTENSIONE



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.