Const MAX_FILENAME_LEN = 255 Private Declare Function FindExecutable _ Lib "shell32.dll" Alias "FindExecutableA" _ ( _ ByVal lpFile As String, _ ByVal lpDirectory As String, _ ByVal lpResult As String) As Long Private Sub Form_Load() Dim i As Integer Dim Buffer As String Dim Fichier As String Fichier = "C:\temp\bd1.mdb" 'Test si le fichier existe If Dir(Fichier) "" Or Fichier "" Then MsgBox "Fichier non trouvé !", vbCritical Exit Sub End If 'Intitialisation du buffer avec des espaces Buffer = Space$(MAX_FILENAME_LEN) ' Recherche de l'exécutable associé au fichier i = FindExecutable(Fichier, vbNullString, Buffer) If i > 32 Then ' Pour éviter que ça n'affiche que c:\program ' au lieu de c:\c:\program files\.... Buffer = Replace(Buffer, Chr$(0), " ") ' Pour supprimer les éventuels paramètres ' comme avec ..\..\msaccess.exe /NOSTARTTUP ... Buffer = Left$(Buffer, InStr(UCase(Buffer), "EXE") + 2) ' Affichage du chemin et nom de l'exe MsgBox Buffer Else MsgBox "Pas d'exécutable associé !" End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question