Problem mit ShellExecute

29/04/2015 - 10:05 von Lothar Geyer | Report spam
Ich habe unter XP, Adobe Reader 11.0.08, Office 2003 ein Problem. Mit
dem Befehl

Status = ShellExecute(GetForegroundWindow _
, "Open", DocName, vbNullString _
, App.Path & "\", vbNormalFocus)

öffne ich eine Datei, die ich vorher als .pdf gespeichert habe. Das
funktioniert auch. Wenn ich aber dann eine zweite Datei als .pdf
speichere und mit dem selben Befehl anzeigen will, passiert gar nichts.
Das Adobe Reader-Fenster mit der ersten Datei bleibt wie es war, ein
zweites wird nicht geöffnet und im ersten wird im Menü unter "Fenster"
auch kein zweites Dokument gelistet. Der gelieferte Status ist aber in
allen Fàllen 42(10).

In diesem Zusammenhang gab es auch eine Fehlermeldung, die von einem
Kunden unter W7 gemeldet wurde: "Zugriff verweigert", Err.Numberp. Der
Fehler soll in Zeile 210 erfolgen, obwohl in der Routine gar keine
Zeilennummern stehen.

Beim Testen gab es dann noch einen ganz komischen Effekt. Im Hintergrund
war mit Access 2003 eine .mdb-Datei geöffnet. Wenn ich versuchte, eine
zweite pdf-Datei zu öffnen, gab es von Access eine Fehlermeldung, dass
es ein Makro nicht finden konnte. Der Makro-Name war gleich dem Namen
der Datei, ober ohne Extension. Nachdem ich Access geschlossen und dann
wieder geöffnet hatte, kam der Fehler nicht mehr. Leider hatte ich mir
den genauen Wortlaut nicht notiert :-(

Wie - und ob - das zusammenhàngt - keine Ahnung. Irgendwie komme ich
aber nicht weiter. Hat jemand eine Idee?

Vielleicht liegt der unter W7 gemeldete Fehler an dem Parameter
App.Path, da unter W7 ja wesentlich mehr Security-Beschrànkungen
existieren. Sollte ich den Parameter auf GetTempPath àndern?

Lothar Geyer
 

Lesen sie die antworten

#1 Wolfgang Wolf
30/04/2015 - 08:54 | Warnen spam
Am 29.04.2015 um 10:05 schrieb Lothar Geyer:


Vielleicht liegt der unter W7 gemeldete Fehler an dem Parameter
App.Path, da unter W7 ja wesentlich mehr Security-Beschrànkungen
existieren. Sollte ich den Parameter auf GetTempPath àndern?




Ich würde diesen Pfad ganz weglassen und mit vbNullString ersetzen. Für
die Anzeige eines PDFs brauchst du diesen Parameter nicht. Ich verwende
ihn nicht. Glaube aber auch nicht, dass dein Problem damit zu tun hat.
Hier handelt es sich eher um Unstimmigkeiten beim Reader /
Betriebssystem. Ich kann dieses Verhalten nicht reproduzieren, verwende
aber auch nicht den Adobe-Reader sondern PDF-XChange. Der Aufruf aus VB
erfolgt aber auch mit ShellExecute.

Schönen Gruß
W. Wolf

Ähnliche fragen