Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi externe Datei mit ShellExecute aufrufen funktioniert nicht (https://www.delphipraxis.net/125549-externe-datei-mit-shellexecute-aufrufen-funktioniert-nicht.html)

thomas2009 8. Dez 2008 13:40


externe Datei mit ShellExecute aufrufen funktioniert nicht
 
Hallo

ich rufe die externe Dateien mit diesem Code auf:
Delphi-Quellcode:
var
link : String;
begin
      try
link :=WB1.OleObject.Document.GetElementByID('link').Value;
// in Textfeld in HTML Code steht der Pfad als relativ :excel\test.xls
ShellExecute(Application.Handle,'open',PChar(link),Nil,Nil,SW_NORMAL);
Bei mir funktioniert wunderbar (egal ob der Pfad als relativ oder als absolut. Aber bei meinem Freund funktioniert leider nicht immer

muss ich den Pafd als Absolut aufrufen?
Delphi-Quellcode:
ShellExecute(Application.Handle,'open',PChar(ExtractFilePath(ParamStr(0))+link),Nil,Nil,SW_NORMAL);

Luckie 8. Dez 2008 13:58

Re: externe Datei mit ShellExecute aufrufen funktioniert nic
 
Fehlermeldung? Rückgabewert von Shellexecute? API-Funktionen haben nicht umsonst Rückgabewerte, die man prüfen kann.

thomas2009 8. Dez 2008 15:59

Re: externe Datei mit ShellExecute aufrufen funktioniert nic
 
Es wird natürlich keine Fehlermeldung angezeigt, da ich den Code in Try...Except eingegeben habe
Meine Frage, ist es besser den Pfad als absolut einzugeben?

Ich würde den Code ohne Try...except eingeben und teste ich wieder bei meinem Freund

Luckie 8. Dez 2008 16:04

Re: externe Datei mit ShellExecute aufrufen funktioniert nic
 
Zitat:

Zitat von thomas2009
Es wird natürlich keine Fehlermeldung angezeigt, da ich den Code in Try...Except eingegeben habe

Und warum machst du das dann? Mit dem Rückgabewert wären wir wahrscheinlich schon weiter.

Zitat:

Meine Frage, ist es besser den Pfad als absolut einzugeben?
Das würde voraussetzen, dass die Pfade auf allen Rechnern immer und absolut identisch wären, dies sind sie aber in der Regel nicht. Wenn du denn den Pfad hardcodest. am besten ist immer zur Laufzeit den absoluten Pfad zu ermitteln.

DeddyH 8. Dez 2008 16:04

Re: externe Datei mit ShellExecute aufrufen funktioniert nic
 
Erstens solltest Du immer absolute Pfade verwenden und zweitens hat der Rückgabewert von ShellExecute absolut nichts mit try-except zu tun. Wenn der Rückgabewert < 33 ist, ist das ein Fehler, den kannst Du auswerten.

mkinzler 8. Dez 2008 16:05

Re: externe Datei mit ShellExecute aufrufen funktioniert nic
 
Ähem: Windowsfunktionen leifern bei Fehlern entsprechende Rückgabewerte. (Wie Michael schon geschrieben hat)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz