1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Nur für 32Bit Office Versionen

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