Hi Leute,
hab auch schon wieder ein Problemchen.
Ich öffne aus Excel heraus eine PDF. Da ich nicht weiß, welches PDF-PRogramm auf dem Rechner des Nutzers ist, nehme ich Microsoft Edge. Das öffnet man offenbar über den Internetexplorer. Ich nutze dazu den folgenden Befehl:
hfile = Shell("C:\Program Files\Internet Explorer\iexplore.exe " & Pfad & "\" & Datei)
Die Datei öffnet unter Edge auf einer neuen Registerkarte. Und der Befehl gibt ordnungsgemäß ein Handle an hfile zurück. hfile ist natürlich global definiert und lässt sich auch später auslesen. Nun möchte ich die Datei wieder schließen. Dazu habe ich im Netz den folgenden Befehl gefunden:
Shell "taskkill /f /pid " & hfile, vbHide
Wenn ich den allerdings benutze passiert einfach gar nichts. Kann es sein, dass Microsoft Edge noch nicht auf Shell taskkill reagiert?
Hab noch einen anderen Befehl gefunden: Shell "pskill " & CStr(hfile), vbHide
Da kommt aber ein Laufzeitfehler: Datei nicht gefunden! Dabei ist sie immer noch offen.
Hat jemand eine Idee?
Würde das schließen gern so einfach wie möglich halten. Notfalls mit einer PtrSafe-Function die nicht zu viele Parameter hat. Finde aber nur noch ein speziell für Edge ausgerichtetes sehr komplexes Beispiel im Netz unter Nutzung der UIAutomationCore.dll. Da weiß ich nicht, ob die auch auf jedem Rechner drauf ist.
Alternativ könnte ich mir auch vorstellen das Standard-PDF-Programm zu ermitteln und dieses zu öffnen und zu schließen. An der Stelle häng ich grad, weiß aber nicht wonach ich da suchen soll.
Gruß Mr. K.
|