erleuchten kann man (ich) Dich aber nur, wenn Du genau(!)
beschreibst, wo denn die Dunkelheit bei Dir nun herrscht…
Für mich stellt sich die Situation folgendermaßen dar:
FollowHyperlink benutzt zum öffnen von .pdf-Dateien den Acrobat-Reader. In WINDOW habe ich nun festgelegt, .pdf-Dateien sollen immer mit dem PDFXChange-Viewer geöffnet werden. Das klappt auch bei Doppelklick auf eine .pdf-Datei, nicht aber bei FollowHyperlink, hier wird von VBA weiterhin der Acrobat-Reader benutzt.
Nun habe ich mal das Verzeichnis, in dem der Acrobat-Reader liegt umbenannt, und - da funktioniert es auch innerhalb von ACCESS. Frage ich mich doch, wo steht, daß FollowHyperlink den Acrobat-Reader nehmen soll und wenn er ihn offenbar nicht mehr findet, dann doch den gewünschten Viewer verwendet? Bißchen unklar.
Nun habe ich es mit ShellExecute versucht. Ohne so richig zu begreifen was ich da eigentlich mache habe ich folgenden Code zusammengebastelt (besser gesagt: aus der Hilfe übernommen und ein kein wenig modifiziert):
Option Compare Database
Declare Function ShellExecute Lib „shell32.dll“ Alias _
„ShellExecuteA“ (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long
Declare Function apiFindWindow Lib „User32“ Alias „FindWindowA“ _
(ByVal lpclassname As Any, ByVal lpCaption As Any) As Long
Global Const SW_SHOWNORMAL = 1
Sub ShellExecuteExample()
Dim hwnd
Dim StartDoc
hwnd = apiFindWindow(„F:\Programme\Tracker Software\PDF Viewer\PDFXCview.exe“, „0“)
StartDoc = ShellExecute(hwnd, „open“, „C:\test.pdf“, „“, _
„C:“, SW_SHOWNORMAL)
End Sub
Wenn in WINDOW der Acrobat-Reader wieder als Standardprogramm für das öffnen von PDF-Dateien festgelegt ist, benutzt diese Routine - Überraschung - den Acrobat-Reader (!!!). Obwohl doch wohl ausdrücklich geschrieben steht
„hwnd = apiFindWindow(„F:\Programme\Tracker Software\PDF Viewer\PDFXCview.exe“, „0“)“
Das begreife wer will. Oder habe ich da was mißverstanden?
Lege ich nun in WINDOW fest, das Standardprogramm für .pdf-Dateien soll der PDFXChange-Viewer sein, funktioniert es. Ich muß den Acrobat-Reader nicht in einem umbenannten Verzeichnis „verstecken“ wie bei FollowHyperlink. Für mich alles seehr mysteriös.
Nun gut, ich habe nun zwar eine Lösung die funktioniert (eigentlich sogar zwei), allerdings ohne zu begreifen warum (bzw. warum nicht, wenn Acrobat-Reader das StandardProgramm für .pdf-Dateien ist). Und dieser Zustand befriedigt mich keineswegs. Hat jemand (ist aber nun nicht mehr dringend, nur noch persönliches Interesse) vielleicht ein paar aufhellende Erklärungen?
Sorry, ist bißchen lang geworden. aber es wurde ja eine genaue(!) Beschreibung meiner Null-Ahnung angemahnt
(Kann man „NULL“ eigentlich beschreiben?)
Danke
cadder