AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rückgabewert von ShellExecute ?

Ein Thema von Hansa · begonnen am 11. Mär 2007 · letzter Beitrag vom 13. Mär 2007
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Rückgabewert von ShellExecute ?

  Alt 11. Mär 2007, 12:41
Hi,

habe folgenden Source :

i := ShellExecute (...); 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 ? 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.
Gruß
Hansa
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#2

Re: Rückgabewert von ShellExecute ?

  Alt 11. Mär 2007, 12:53
http://www.michael-puff.de/Developer...lexecute.shtml
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Rückgabewert von ShellExecute ?

  Alt 11. Mär 2007, 16:59
Zitat von Hansa:
Im WinSDK sind zwar die Ergebniswerte aufgelistet, aber nur als Konstanten. Wo ist deklariert, welchen Zahlenwert die haben ?
Die kannst du in den entsprechenden Header-Dateien finden, die du im PSDK findest.

Zitat:
Wie kann man verhindern, dass sich das Fenster sofort schließt ? Wäre schon interessant zu wissen, was die letzte Ausgabe des Programmes war.
Das hat nichts mit ShellExecute zu tun, sondern mit dem aufgerufenen Programm.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Rückgabewert von ShellExecute ?

  Alt 12. Mär 2007, 19:27
Die Frage ist ja auch noch nicht geklärt.

Zitat von Luckie:
..Die kannst du in den entsprechenden Header-Dateien finden, die du im PSDK findest
...Das hat nichts mit ShellExecute zu tun, sondern mit dem aufgerufenen Programm.
1. Wo zum Teufel sind in den 266 bzw. 360 PSDK-MB diese minimalen Informationen zu finden ?

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. ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Rückgabewert von ShellExecute ?

  Alt 12. Mär 2007, 19:41
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Rückgabewert von ShellExecute ?

  Alt 13. Mär 2007, 06:52
Selbes Spielchen : Fenster wird geschlossen. Werde wohl tatsächlich BAT bauen müssen.
Gruß
Hansa
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#7

Re: Rückgabewert von ShellExecute ?

  Alt 13. Mär 2007, 08:14
ShellExecute(Application.Handle, 'open', 'cmd', '/K C:\Prog.exe', SW_SHOW); mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#8

Re: Rückgabewert von ShellExecute ?

  Alt 13. Mär 2007, 08:53
Moin moin ,

ich hab mal folgendes gefunden .... HTH

Delphi-Quellcode:
// *****************************************************************************
// 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;
Gruss

ascotlx
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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