Guten Tag,
meine Anwendung soll bei der Konfiguration herausfinden ob der Acrobat-Reader auf dem aktiven Computer installiert ist, und den Pfad angeben. Die Funktion "FindAssociatedProgram" habe ich im Internet gefunden. Die "Sub AcroReader_finden()" hab ich gebastelt um die Funktion zu testen. Das Problem ist, "WINWORD.EXE" wird von der Funktion korrekt ausgegeben nicht aber "AcroRd32.exe". Beide .EXE sind auf meinem PC vorhanden: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE und C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe
PDF-Dateien und Word-Dateien öffnen funktioniert problemlos. Was mache ich falsch oder was habe ich übersehen? Hier die Codes mit Bitte um Hilfe. Vielen Dank schon mal.
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
Sub AcroReader_finden()
Dim sFile As String
sFile = "AcroRd32.exe"
If MsgBox("JA = Acorbat-Reader" & Chr(13) & "Nein = MS-Word", vbQuestion + vbYesNo, "Programm finden") = vbNo Then
sFile = "WINWORD.EXE"
End If
MsgBox FindAssociatedProgram(sFile)
End Sub