Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Überprüfen, ob shellexecute erfolgreich (https://www.delphipraxis.net/24207-ueberpruefen-ob-shellexecute-erfolgreich.html)

barnti 17. Jun 2004 14:28


Überprüfen, ob shellexecute erfolgreich
 
Hallo,

ich öffne eine Datei per 'shellExecute':

Delphi-Quellcode:
ShellExecute(Form_Main.Handle,nil,PChar(Pfad), nil, nil, SW_SHOW);
Wenn die Datei nicht existiert, passiert gar nichts. Wie kann ich überprüfen, ob die Aktion erfolgreich verlaufen ist?

Neuni 17. Jun 2004 14:33

Re: Überprüfen, ob shellexecute erfolgreich
 
Man muss abfragen ob ein Fenster mit dem passenden titel offen ist...guck doch mal bei delphi-source.de da gibbet sowas (glaub ich)

Edit: Is der name der anwendung (also der fenstertitel) denn immer gleich??

Smokey 17. Jun 2004 14:36

Re: Überprüfen, ob shellexecute erfolgreich
 
Oder aber man liest sich die Funktionsbeschreibung in der Hilfe durch und findet folgende Aussage :

Zitat:

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.

If the function fails, the return value is an error value that is less than or equal to 32
Zudem finden sich auch noch alle möglichen Errorcodes in der selben Hilfe.

barnti 17. Jun 2004 14:48

Re: Überprüfen, ob shellexecute erfolgreich
 
Hallo,
Zitat:

Zitat von Smokey
Oder aber man liest sich die Funktionsbeschreibung in der Hilfe durch und findet folgende Aussage :

Zitat:

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.

If the function fails, the return value is an error value that is less than or equal to 32
Zudem finden sich auch noch alle möglichen Errorcodes in der selben Hilfe.

Das ist sehr nett gemeint. Ich habe den Eintrag auch gefunden. Leider kann ich damit nichts anfangen...

sakura 17. Jun 2004 14:51

Re: Überprüfen, ob shellexecute erfolgreich
 
Zitat:

If the function fails, the return value is an error value that is less than or equal to 32
Was ist da nicht zu verstehen :gruebel: ShellExecute liefert einen Integer zurückk. Ist dieser kleiner oder gleich 32, ist der Aufruf fehlgeschlagen :roll:

...:cat:...

Wheelie 17. Jun 2004 15:02

Re: Überprüfen, ob shellexecute erfolgreich
 
Delphi-Quellcode:
if ShellExecute(...) < 33 then
begin
  //Fehlerbehandlung
end;
Da ShellExecute eine Funktion ist, besitzt es auch einen Rückgabewert, in diesem Fall einen Integer-Wert. Mit diesem Wert kannst du das Ergebnis auswerten -> siehe Online-Hilfe.

barnti 17. Jun 2004 15:06

Re: Überprüfen, ob shellexecute erfolgreich
 
:oops:
Meine Abfrage, ob ein Fehler aufgetreten ist war total falsch...
Sorry, mein Fehler!

MathiasSimmack 17. Jun 2004 15:20

Re: Überprüfen, ob shellexecute erfolgreich
 
Zitat:

Zitat von Smokey
Oder aber man liest sich die Funktionsbeschreibung in der Hilfe durch und findet folgende Aussage :
Zitat:

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.

If the function fails, the return value is an error value that is less than or equal to 32

Von der man zumindest den ersten Absatz ignorieren sollte, weil die Hilfedatei von Microsoft, die bei Borland dabei ist, hoffnungslos veraltet ist. Hier steht´s aktueller: [msdn]"ShellExecute"[/msdn].


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

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