AGB  ·  Datenschutz  ·  Impressum  







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

Returncode von WinRar

Ein Thema von Gina · begonnen am 21. Jan 2005 · letzter Beitrag vom 30. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#1

Returncode von WinRar

  Alt 21. Jan 2005, 18:51
Hallochen,

eine kleine Frage. Ich rufe in meinem Programm WinRar mit Parametern auf, um Dateien zu packen und zu entpacken. Nun steht im Handbuch von WinRar:

Zitat:
Wenn RAR endet, setzt es die Umgebungsvariable ERRORLEVEL auf einen Wert, der
dem Grund für die Beendigung (termination status) entspricht...
Hat zufällig jemand einen Tipp für mich, wie ich diesen Returncode abfrage?

Vielen Dank, Gina.

PS: Die besagte Umgebungsvariable kann ich bei mir nirgends finden...
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Returncode von WinRar

  Alt 21. Jan 2005, 19:05
Hi,

mit MSDN-Library durchsuchenFindEnvironmentString sollte sich das herausfinden lassen
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#3

Re: Returncode von WinRar

  Alt 22. Jan 2005, 11:03
Vielen Dank,

kannst du mir bitte noch erklären, wie ich das benutze? Ich glaub ich mache da was falsch, da mir nichts zurück geliefert wird...

Tausend Dank, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Returncode von WinRar

  Alt 22. Jan 2005, 13:02
Hi,

da ich eben gemerkt habe, dass mein Delphi mit der Funktion noch gar nichts anzufangen weiß, hier ein anderer Weg:
Delphi-Quellcode:
function GetEnvVar(name: String): String;
var
  pc: PChar;
  l: Integer;
begin
  l := GetEnvironmentVariable(PChar(name), nil, 0);
  GetMem(pc, l);
  try
    GetEnvironmentVariable(PChar(name), pc, l);
    result := pc;
  finally
    FreeMem(pc, l);
  end;
end;
Aufruf mit:
Label1.Caption := GetEnvVar('PATH');
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#5

Re: Returncode von WinRar

  Alt 22. Jan 2005, 16:26
Vielen Dank erstmal.

Leider wird mir auch damit nix angezeigt. Also scheint diese Umgebungsvariable tatsächlich nicht zu existieren. PATH wird mir angezeigt, wenn ich sie abfrage. Wenn die ERRORLEVEL existieren würde, müßte ich sie doch in der Systemsteuerung finden, oder? Ich hab auch schon spaßhalber eine dort angelegt, aber auch dann passiert nix.

Wenn ein Programm ausgeführt wird und ein Fehler auftritt, speichert das jedes Programm woanders ab? Oder gibt es da eine allgemeine Windows-Variable, die ich eventuell noch abfragen könnte?

Tausend Dank, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Returncode von WinRar

  Alt 22. Jan 2005, 16:55
das ist eine umgebungsvariable die nirgends declariert wurde.
in batchdateien konnte man mit
Code:
if errorlevel == 5
das ganze abfragen ob es eine 5 war, also sie muss irgendwie verfügbar sein ist aber vermutlich instanzgebunden. Das heißt nach dem schließen der console ist die errolevel-variable wieder undefiniert
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#7

Re: Returncode von WinRar

  Alt 22. Jan 2005, 17:23
Hmm... das erklärt natürlich vieles. Ich habe inzwischen auch mehrere batch-scritpe gefunden, wo das benutzt wurde... Scheint also nur unter Dos zu funktionieren...

Wie kann ich aus Delphi heraus irgendwie so ein batch-Script generieren, damit ich ERRORLEVEL auslesen kann?

Danke Euch ganz dolle, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Returncode von WinRar

  Alt 22. Jan 2005, 17:31
das hat nix mit dos zu tun sondern damit das errorlevel nur in der instanz gültig ist. Wie du eine neue Batchdatei erstellst wäre eine neue Frage und somit ein neuer thread. (batchdatei ist nix anderes als eine textdatei wo befehle hintereinander stehen (eine stringlist würde sich da empfehlen))
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#9

Re: Returncode von WinRar

  Alt 22. Jan 2005, 19:24
Aso... *oops* Eigentlich ist mir das mit einer bat auch irgendwie nicht so schön. Falls also doch noch jemandem einfallen sollte, wie ich die Variable ERRORLEVEL abfragen kann, würde ich mich sehr freuen. Ich hatte auch schon probiert, sie während des Wartens auf Beenden der WinRar.exe abzufragen, aber da stand immer 0 drin. (Habe extra einen Fehler produziert...)

Was ich noch probiert habe, ist die Fehler in eine log-Datei zu schreiben mit dem Parameter -ilog, aber das hat nicht geklappt, obwohl mein WinRar registriert ist... *grml* Vielleicht hab ich dabei auch etwas falsch gemacht. Wenn das vielleicht noch jemand von Euch testen könnte, wäre das auch supi...

Vielen lieben Dank, bis morgen, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Returncode von WinRar

  Alt 24. Jan 2005, 21:34
Hi,

so noch mal was neues . Ich hatte bei meinen letzten Beiträgen gar nicht daran gedacht, dass ERRORLEVEL ja keine normale Umgebungsvariable ist.

Die folgende Funktion startet das Programm in Cmd und weißt nach dessen Ende den ExitCode dem gleichnamigen Parameter zu. Sollte beim Starten ein Fehler auftreten, wird false zurückgeliefert.
Delphi-Quellcode:
function RunProcess(Cmd: String; var ExitCode: Cardinal): Boolean;
var
  si: TStartupInfo;
  pi: TProcessInformation;
begin
  Result := false;
  ZeroMemory(@si, sizeof(si));
  si.cb := sizeof(si);
  ZeroMemory(@pi, sizeof(pi));

  if CreateProcess(nil, PChar(Cmd), nil, nil, false, 0, nil, nil, si, pi) then
  begin
    WaitForSingleObject(pi.hProcess, INFINITE);
    GetExitCodeProcess(pi.hProcess, ExitCode);
    Result := true;
  end;
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
end;
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:54 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