![]() |
Rückgabewert von ShellExecute ?
Hi,
habe folgenden Source :
Delphi-Quellcode:
Im WinSDK sind zwar die Ergebniswerte aufgelistet, aber nur als Konstanten. Wo ist deklariert, welchen Zahlenwert die haben ? Lasse ich mir das i anzeigen, so wird 42 angezeigt. Was ist das jetzt ? :gruebel: Dann noch was : sofern ich das Programm per showmessage anhalte, sehe ich zwar die 42, aber nicht die Ausgabe des aufgerufenen Programms. Wie kann man verhindern, dass sich das Fenster sofort schließt ? Wäre schon interessant zu wissen, was die letzte Ausgabe des Programmes war.
i := ShellExecute (...);
|
Re: Rückgabewert von ShellExecute ?
|
Re: Rückgabewert von ShellExecute ?
Zitat:
Zitat:
|
Re: Rückgabewert von ShellExecute ?
Die Frage ist ja auch noch nicht geklärt. :???:
Zitat:
2. Wieso wird das Programm / Fenster geschlossen, ohne dass man die Ausgabe lesen kann ? Im DOS-Modus gestartet kehrt das auch nicht sang und klanglos zum Desktop zurück. Klar, das geht auch, aber dann müssen ca. 10 Programme einzeln von Hand gestartet werden. Oder soll ich ein Delphi-Programm, welches diese anderen aufruft durch BAT ersetzen. Mit PAUSE, ERRORLEVEL und Co. ? :zwinker: |
Re: Rückgabewert von ShellExecute ?
Nun ja, man könnte als aller erstes in der Header-Datei gucken, in der auch die Funktion deklariert ist.
Dass es sich um ein Konsolenprogramm handelt hättest du eventuell auch mal etwas früher erwähnen können. Wie verhält es sich denn wenn du es mit Doppelklick aus dem Explorer startest? |
Re: Rückgabewert von ShellExecute ?
Selbes Spielchen : Fenster wird geschlossen. Werde wohl tatsächlich BAT bauen müssen.
|
Re: Rückgabewert von ShellExecute ?
Delphi-Quellcode:
mfg
ShellExecute(Application.Handle, 'open', 'cmd', '/K C:\Prog.exe', SW_SHOW);
Christian |
Re: Rückgabewert von ShellExecute ?
Moin moin ,
ich hab mal folgendes gefunden .... HTH :roteyes:
Delphi-Quellcode:
Gruss
// *****************************************************************************
// auch abgeschrieben DSDT ;o) function TForm3.ShellExecuteErrMessage(int_Code: INTEGER): string; //Gibt die passenede Fehlermeldung zum ShellExecute Fehlercode zurück begin case int_code of 0: result := 'Zuwenig Speicher, ausführbare Datei war zerstört, Relokationswerte waren ungültig'; 2: result := 'Datei wurde nicht gefunden.'; 3: result := 'Verzeichnis wurde nicht gefunden.'; 5: result := 'Fehler beim Zugriff auf eine Datei.'; 6: result := 'Bibliothek forderte separate Datensegmente für jede Task an.'; 8: result := 'Zuwenig Speicher, um die Anwendung zu starten.'; 10: result := 'Falsche Windows-Version.'; 11: result := 'Ungültige ausführbare Datei. Entweder keine Windows-Anwendung oder Fehler in der EXE-Datei.'; 12: result := 'Anwendung für ein anderes Betriebssystem.'; 13: result := 'Anwendung für MS-DOS 4.0.'; 14: result := 'Typ der ausführbaren Datei unbekannt.'; 15: result := 'Versuch, eine Real-Mode-Anwendung (für eine frühere Windows-Version) zu laden.'; 16: result := 'Versuch, eine zweite Instanz einer ausführbaren Datei mit mehreren Datensegmenten die nicht als nur lesbar gekennzeichnet waren, zu laden.'; 19: result := 'Versuch, eine komprimierte ausführbare Datei zu laden.' + #13 + 'Die Datei muß dekomprimiert werden, bevor sie geladen werden kann.'; 20: result := 'Ungültige dynamische Linkbibliothek (DLL).' + #13 + 'Eine der DLLs, die benötigt wurde, um die Anwendung auszuführen, war beschädigt.'; else result := 'Ein Unbekannter Fehler ist aufgetreten. (' + IntToStr(int_code) + ')'; end; end; ascotlx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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-2025 by Thomas Breitkreuz