Autor Beitrag
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 18.05.04 14:12 
hallo !!

also ich habe schonmal was von exitscode gehört.
was ist denn das ganeu ??
wie generiere ich sie und wie kann ich sie auslesen ??

_________________
In the beginning was the word.
And the word was content-type: text/plain.


Zuletzt bearbeitet von matze am So 23.05.04 10:11, insgesamt 1-mal bearbeitet
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Sa 22.05.04 23:16 
Hallo,

das ist ein Wert den dein Programm bei Beendigung an das Betriebssystem zurückgeben kann. Wird die Anwendung normal beendet, gibt man in der Regel 0 zurück. Bei Fehlern Werte ungleich 0.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

begin
  //....

  ExitCode := 0;
end.


Wenn du von einem externen Programm den ExitCode ermitteln willst, brauchst du den Prozesshandle, um damit die Funktion GetExitCodeProcess() aufzurufen. Deswegen musst du das externe Programm mit ShellExecuteEx() oder CreateProcess() starten damit du einen Prozesshandle hast.

MFG

- Ernesto -
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 23.05.04 10:10 
cool danke !!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 23.05.04 10:54 
Shellexecute liefert kein Prozesshandle zurück, nur einen Fehlercode.
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: So 23.05.04 11:08 
Hallo,

ErnestoChe hat folgendes geschrieben:
ShellExecuteEx()


MFG

- Ernesto -
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 24.05.04 16:28 
Luckie hat folgendes geschrieben:
Shellexecute liefert kein Prozesshandle zurück, nur einen Fehlercode.

aber dieser fehlercode ist nicht gelich dem was ich unter exitcode im andere proggi eintage oder ?

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.05.04 16:40 
Nein. Der Fehlercode bezieht sich nur auf die Funktion selber.
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 24.05.04 18:09 
und wie genau bekomm ich dann den errorcode von shelexecuteEx zurück ?

_________________
In the beginning was the word.
And the word was content-type: text/plain.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.05.04 18:20 
Mensch, matze. Es ist eine Funktion, oder? Was macht man üblicherweise, wenn man das Ergebnis von Funktionen haben will?
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 24.05.04 19:17 
ja das ist schon klar, aber in der Online Hilfe steh ja:
Zitat:
Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

meinen die damit, dass die funktion den exitcode zurückgibt. nicht oder ??

_________________
In the beginning was the word.
And the word was content-type: text/plain.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 25.05.04 08:49 
Hast du das aus dieser uralten "Win32.hlp"? Dann solltest du dir das PSDK anschauen, denn da steht folgendes
Zitat:
Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below.

Oder anders gesagt: Lösche diese Hilfedatei, die ist hoffnungslos veraltet, und besorge dir das PSDK.
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Di 25.05.04 09:07 
MathiasSimmack hat folgendes geschrieben:
{...} Oder anders gesagt: Lösche diese Hilfedatei, die ist hoffnungslos veraltet, und besorge dir das PSDK.


Das sind die netten Empfehlungen. Ich verstehe nicht wie man so eine Empfehlung geben kann, genausowenig wie davon auszugehen, daß man sie haben muß. Zugegeben, ein professioneller Programmierer braucht das, aber das sind um die 500 MByte an Daten die man sich runterladen muß und an die 1,5 GByte für die installierte Version. Von einem Hobbyprogrammierer würde ich nie verlangen, daß er die PSDK haben sollte. Wozu? Dafür, daß er alle drei Monate etwas nachsehen kann?

_________________
Gruß
Martin
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Di 25.05.04 09:08 
Hallo,

@Matze
Weder ShellExecute, noch ShellExecuteEx, noch CreateProcess, liefern als Funktionsrückgabe den ExitCode, sondern nur einen Wert, der besagt, ob die Funktionen an sich erfolgreich durchgeführt wurden oder nicht.

Wie sollte es auch anders gehen. Mit diesen Funktionen ruft man ja die Programme lediglich auf. Den ExitCode liefern die Programme erst nach Beendigung. Und diesen kannst du, wie bereits gesagt, mit GetExitCodeProcess() ermitteln. Dazu muss man aber das Programm, auch wie bereits gesagt mit ShellExecuteEx() oder CreateProcess() aufrufen, damit man eine Prozess-Handle bekommt, den man an GetExitCodeProcess() übergeben muss.

Und das hat nichts damit zu tun, dass die Win32.hlp veraltet ist. Auch dort steht es - vielleicht weniger ausführlich - drin.

MFG

- Ernesto -
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 25.05.04 09:17 
@Martin:

Ich bin auch kein professioneller Programmierer, und auch das PSDK ist weit davon entfernt, 100% fehlerfrei zu sein. Aber ich gebe den Tipp, weil diese "win32.hlp" tatsächlich veraltet ist. Wenn du sie hast, dann schau mal unter "SetSystemTime" nach was dort zu den NT-Plattformen bzgl. der Rechte gesagt wird. Und dann vergleich das mal mit dem PSDK, bzw. Suche im MSDN "SETSYSTEMTIME".

Das ist übrigens der zweite Punkt: Wer sich das PSDK nicht herunterladen will oder kann, der schaut online ins MSDN rein. Wer´s gern offline hat, der fragt (so wie ich damals) einen Bekannten mit DSL. Oder er lässt es sich von einem Bekannten, der es schon hat, brennen und per Post schicken.

Grundsätzlich gibt es also kein Problem, das PSDK zu bekommen.


Ergänzt von mir:

Ich habe übrigens nur die Dokus und Beispiele installiert, die mich interessieren. Und darum belegt das PSDK bei mir auch nur 200meg.


@ErnestoChe: Matze hatte nicht nach dem Exitcode sondern nach dem Errorcode von "ShellExecute gefragt. s. auch hier. Luckies Antwort ist dann direkt darunter.
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Di 25.05.04 09:57 
Hallo,

ich nahm Bezug auf das:

matze hat folgendes geschrieben:
ja das ist schon klar, aber in der Online Hilfe steh ja:

Zitat:
Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.


meinen die damit, dass die funktion den exitcode zurückgibt. nicht oder ??


MFG

- Ernesto -
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 25.05.04 12:10 
Okay, dann würde ich sagen, wir geben einfach matze die Schuld, weil sich der Kerl (wieder mal) falsch ausgedrückt hat. :mrgreen:
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 25.05.04 13:20 
oh mist. ich meinte in meinem post oben natrülich den Exitcode und nicht den errorcode... ich depp.

_________________
In the beginning was the word.
And the word was content-type: text/plain.