API: Dateipfad des assozierten Programms einer Datei finden

 

Nur für 32Bit Office Versionen

Problemstellung:

Wie kann ich den Dateipfad des assozierten Programms einer Datei finden? 

Lösung:

Folgenden Code in ein neues Modul kopieren.

Public Declare Function FindExecutable _
    Lib "shell32.dll" Alias "FindExecutableA" ( _
    ByVal lpFile As String, _
    ByVal lpDirectory As String, _
    ByVal strBuffer As String) As Long
Public Function FindAssociatedProgram( _
    ByVal sFile As String) As String
    Dim sBuffer As String
    Dim sDir As String
    Dim nRet As Long
    sDir = Left(sFile, InStrRev(sFile, "\"))
    sBuffer = Space(255)
    nRet = FindExecutable(sFile, sDir, sBuffer)
    If nRet > 32 Then
        If InStr(sBuffer, vbNullChar) > 1 Then
            FindAssociatedProgram = Left(sBuffer, _
                InStr(sBuffer, vbNullChar) - 1)
        End If
    End If
End Function

 

Aufruf z.B.:

MsgBox FindAssociatedProgram("D:\users\Daten\Vorlagen\Handkassenbeleg.doc")

 

Ergebnis:

 

Ähnliche Artikel

Wir verwenden Cookies

Wir verwenden Cookies, um Ihr Surferlebnis zu verbessern und den Website-Verkehr zu analysieren. Bitte wählen Sie aus, welchen Cookie-Kategorien Sie zustimmen möchten.