Entwickler-Ecke
Windows API - Überprüfen ob ShellExecute den Prozess gestartet hat
Kuyatzu - Fr 21.09.07 22:56
Titel: Überprüfen ob ShellExecute den Prozess gestartet hat
Hi Leute
Ich weiß nicht wie ich das hinbekomme das überprüft wird ob ShellExecute das Programm gestartet hat
und bei true/bzw. false eine andere Option folgt.
BenBE - Fr 21.09.07 23:03
Wie jede API sollte Dir
SHELLEXECUTE entweder
True\
False als
Result liefern, ODER den Status über
GETLASTERROR zurückmelden.
bms - Sa 22.09.07 01:20
BenBE hat folgendes geschrieben: |
Wie jede API sollte Dir SHELLEXECUTE entweder True\False als Result liefern, ODER den Status über GETLASTERROR zurückmelden. |
ShelleExecute gibt dir zwar ein Wert zurück, und, falls es <= 32 ist, dann ist es ein Fehlercode, aber kein Wert <= 32 bedeutet nicht automatisch, daß das Programm erfolgreich gestartet wurde. Allerdings ist Wert <= 32 auf jeden Fall ein Zeichen dafür, daß es nicht geklappt hat.
Kuyatzu - Sa 22.09.07 08:30
Danke :wink: :wink: :wink:
Das ist schon sehr hilfreich und danke für die schnelle Antwort.
Hab aber doch noch ein Problem und zwar weiß ich nicht wie man das den macht mit
result usw.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute(0, 'open','yxz.exe', nil, nil, SW_SHOW); ShowMessage('"yxz.exe" nicht gefunden.Bitte überprüfen sie den Pfad'); end; |
Timosch - Sa 22.09.07 10:35
Ähm, ShellExecute ist eine Funktion. Also:
Und in a ist dann der Result-Wert von ShellExecute.
Narses - Sa 22.09.07 10:47
Moin!
Wie wäre es denn, wenn du erstmal separat überprüfst, ob die Anwendung existiert? Dann kannst du diesen Fall schonmal ausschließen und ganz sicher sein: :idea:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); begin if FileExists('yxz.exe') then begin if (ShellExecute(0, 'open', 'yxz.exe', nil, nil, SW_SHOW) <= 32) then ShowMessage('Fehler beim Start von "yxz.exe"!'); end else ShowMessage('"yxz.exe" nicht gefunden. Bitte überprüfen sie den Pfad'); end; |
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!