Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Batchdatei aufrufen - Rückgabewert abfragen! (https://www.delphipraxis.net/51063-batchdatei-aufrufen-rueckgabewert-abfragen.html)

Kiste1985 5. Aug 2005 08:44


Batchdatei aufrufen - Rückgabewert abfragen!
 
Heyho...

Okay meine Frage, die evtl. teilweise schon beantwortet wurde.


Ich möchte eine Batch datei aufrufen... Okay, ShellExecute waere mein erster Gedanke...

2tes Problem - Ich möchte den Rückgabewert der Batch Datei erhalten!

3tes Problem - Die Batchdatei kann ich erstmal nicht beeinflussen!


Shellexecute gibt mir ja nur das Handle wieder, bloß wie verwende ich es weiter?

Wenn jemand andere Vorschläge hat, als ShellExecute(), bitte melden! :)



mfg Kiste

SirThornberry 5. Aug 2005 08:48

Re: Batchdatei aufrufen - Rückgabewert abfragen!
 
welchen Rückgabewert willst du von der Batchdatei erhalten? diese hat doch gar keinen.

Kiste1985 5. Aug 2005 08:52

Re: Batchdatei aufrufen - Rückgabewert abfragen!
 
Wenn zB "Exit 1" aufgerufen wird, möchte ich die 1 ...

Denke mal dass es so richtig ist, gibt ja zB auch exit %errorlevel% etc!


mfg Kiste

Domo Sokrat 5. Aug 2005 08:58

Re: Batchdatei aufrufen - Rückgabewert abfragen!
 
Hi Kiste1985,

nur so sein Gedanke: In Batch-Files kann man Umgebungsvariablen setzen. Die gelten zwar "nur" in der aktuellen "CMD-Session" (-> DOS-Fenster), aber vielleicht kommt man ja irgendwie auch beim Aufruf der Batch über Shellexecute da ran... :gruebel:

... Das mit dem Errorlevel müsstest Du mal prüfen ...

Kiste1985 5. Aug 2005 09:13

Re: Batchdatei aufrufen - Rückgabewert abfragen!
 
Weiteres:

also er speichert bei exit 1 zB warscheinlich in %ERRORLEVEL%

zumindest laut google...


weiteres Problem, ein exit schliesst sofort die cmd console, auch wenn es aus einer anderen batch mit call aufgerufen wird...


mfg Kiste

Sharky 5. Aug 2005 09:19

Re: Batchdatei aufrufen - Rückgabewert abfragen!
 
Hai Kiste,

wenn Du anstelle von ShelExecute das RunProcess aus diesem Thread verwendest kannst Du das machen. RunProcess liefert dir nämlich den Exitcode als Functionsresult

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  blubb : integer;
begin
  blubb := RunProcess('c:\test.bat', SW_SHOWNORMAL, True, nil);
  ShowMessage(IntToStr(blubb));
end;

Kiste1985 5. Aug 2005 09:55

Re: Batchdatei aufrufen - Rückgabewert abfragen!
 
Vielen Dank, werde es gleich ausprobieren!


Für das Problem, dass die Commannd Console sofort beim exit geschlossen wird, folgende Lösung:

exit /b



aber das is ja nun eh nebensache ;)


mfg Kiste


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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 by Thomas Breitkreuz