florengray
Goto Top

Windowsanwendung soll Errorlevel an Batch übergeben

Hallo, wenn es den Beitrag schon gibt, bin ich zu *** den Beitrag zu finden und bitte um Entschuldigung.

Also, ich starte unter XP ein Programm wo man ein Passwort eingeben muss, um Dateien zu entschlüsseln.
Das blöde ist das wenn ich einen Tippfehler gemacht habe sagt mir das Programm nicht "Passwort falsch!" sondern es versucht die Entschlüsselung durchzuführen.
Das dauert dann eine Ewigkeit und ich muss in der Regel vorzeitig mit STRG ALT DEL abbrechen.
Ich kann auch kein Passwort im Editor speichern und dann per copy paste das in die Eingabezeile einfügen. Dass macht das Programm nicht. Wahrscheinlich aus Sicherheitsgründen!?!?!?

Ich wollte nun eine Batch schreiben, die die Eingabezeile von diesem Programm überwacht und dann wenn das Passwort falsch ist vielleicht einen auftretenden errorlevel verarbeitet, der von diesem Fenster kommt und dann weitere Befehle ausführt.

Wenn so etwas machbar ist wäre es sehr schön wenn man mir einen Anreiz oder ein kleinen Tipp geben könnte wie ich so etwas bewerkstelligen soll.

Kurzum ich muss nur wissen, wie ich von einer Windowsanwendung (Eingabefenster) den Errorlevel auswerten kann und den dann an eine Batch übergeben kann.
Wenn so etwas mit Batch realisierbar ist.
Man hat mir mal gesagt: "Alles außer Brotschneiden geht per Batch!"

Content-Key: 68695

Url: https://administrator.de/contentid/68695

Printed on: April 25, 2024 at 08:04 o'clock

Member: miniversum
miniversum Sep 14, 2007 at 15:56:28 (UTC)
Goto Top
Im Normalfall einfach nach dem Ende des Programms die Variable %errorlevel% abfragen. Das sieht dann so aus:
Programm.exe
echo %errorlevel%

Ich würde aber testen ob das Programm überhaubt einen errorleven zurückliefert, nicht alle Programme tun das.

miniversum
Member: AndreasHoster
AndreasHoster Sep 14, 2007 at 16:49:09 (UTC)
Goto Top
Und nach der Beschreibung beendet sich das Programm ja nie bei Falscheingabe, also kann es auch keinen Errorlevel zurückgeben, wenn etwas falsch eingegeben wurde.

Brotschneiden geht übrigens per Batch, wenn Deine Brotschneidemaschine einen Ethernet-Anschluss hat face-wink
Aber einen Programmfehler kann man nicht mit einer Batch beheben, eventuell mit einem Patch ...
Mitglied: 51705
51705 Sep 14, 2007 at 19:41:33 (UTC)
Goto Top
Aber einen Programmfehler kann man nicht mit einer Batch beheben, eventuell mit einem Patch ...

Den muß ich mir merken - Danke!
Member: florengray
florengray Sep 20, 2007 at 12:52:33 (UTC)
Goto Top
Hallo
ich hab grad ein paar Probleme mit der Internetverbindung.

Kann man denn einen Errorlevel abfragen, der von einem Windowsfenster aus abgeht?
Ich meine ich starte ein Programm und das oeffnet ein Fenster.
In dieses Fenster kann man dann in eine Zeile ein Passwort eingeben.
Wenn das falsch ist muesste das Fenster ja irgendwie einen Fehlercode senden.
Den will ich an meine Batch weiterleiten.
Ein Beispiel: Ich starte meine Wlan Karte Level One und dazu das dazugehoerige Programm.
Wenn ich mich connecten moechte klicke ich ja auf eine Verbindung. Also meine.
Dort muss ich mein Passwort eingeben. Wenn das falsch ist, muesste mir diese Eingabezeile vielleicht einen Errorlevel zurueckgeben. Den moechte ich abfangen und an meine Batch weiterleiten.
Geht das?

Koennte etwas duern bis ich wieder reinschaue.
Aber dann erst mal bis bald!
Member: florengray
florengray Sep 28, 2007 at 20:36:12 (UTC)
Goto Top
Hallo mal wieder
also die Internetverbindung ist jetzt wieder ganz.
Bei uns war irgendwo in der Gegend so´n Kasten mit den Internetleitungen wegen Feuchtigkeit beschädigt worden. Aber die Stadtverwaltung hat das wieder repariert.

Ich hoffe jetzt hält die Verbindung ein wenig länger!?!?

Also, da ihr ja nicht mehr geschrieben habt, muss ich davon ausgehen, dass so etwas NICHT möglich ist.
Schade.
Wollte diese Art der Errorlevelabfrage noch für´n paar andere Problemchen verwenden, wie z.B. automatisches Backupbrennen mit Nero wobei die RW erst gelöscht werden muss.
Da wollte ich auch noch die Errolevel abfragen und dazu dann die entprechenden Fehlerschleifen einleiten....

Wollt ihr mir nicht sagen wie das geht oder warum ist die Verbindung jetzt soooo schnell abgebrochen????

Ich weis echt nicht was ich mit dieser Frage schlechtes gefragt habe???


Naja, bis vielleicht dann mal.
Member: miniversum
miniversum Sep 28, 2007 at 20:56:04 (UTC)
Goto Top
Es ist nunmal so was ein Programm erst einen Errorlevel zurückgibt nachdem es beendet ist.

Mit nero Brennen geht auch von Komandozeile aus.

miniversum
Member: florengray
florengray Oct 01, 2007 at 20:27:51 (UTC)
Goto Top
Schon richtig.
Aber um den ganzen Kram mal zu vergessen.
Ich hab noch eine andere Lösung für die Lösung meines Problems.

Also,
kann man Send Keys auch bei Batch irgendwie realisieren? Ich denke da an ASCII und Steuersysmbole?
Was ich vorhabe ist folgendes:
Ich starte eine große Batch, die für mich den Backupkrempel managed.
Dabei wollte ich Acronis True Image starten und vielleicht so ähnlich wie eine Parameterübergabe "Tastendrücke" übergeben.
Diese sollten dann z.B. in das Eingabefenster gehen, wo der Backuppfad abgefragt wird...
Da ist noch ne Menge mehr wo ich was eingeben muss.
Das hier reicht aber um mein Problem zu schildern.
Wenn die Batch dass dann getan hat, könnte ich ja auch dort eine Errorlevelabfrage durchführen, ob z.B. der Zeichensatz der eingegeben wurde gültig ist oder nicht.

Wenn das gehen sollte bitte ich um Antwort.
Member: AndreasHoster
AndreasHoster Oct 02, 2007 at 07:23:36 (UTC)
Goto Top
Um mal nur die Frage zu beantworten:
Es gibt zwar kein direktes, von MS mitgeliefertes SendKey Utility, aber mit etwas VB-Skript lässt sich das schon machen.
Set wshshell = CreateObject("WScript.Shell")
call wshshell.SendKeys("Tastendrücke")
Diese zwei Zeilen als .vbs abspeichern und mit wscript name.vbs starten, dann werden Tastendrücke an das aktive Fenster geschickt.

ABER:
SendKey schickt an das aktive Fenster, egal welches das ist und wenn gerade eine Meldung hochpoppt, dann gehen die Tastendrücke halt sonstwohin.
Wenn das SendKey zu schnell geht und das Windowsprogramm das entsprechende Fenster noch nicht geöffnet hat, dann gehen die Tastendrücke auch sonstwohin.
-> Extremst Fehleranfällig das Ganze.

Bietet Acronis nicht eventuell eine Kommandozeilen-Tool, wo man alles per Parameter übergeben kann, so daß keine Nachfragen kommen?
Member: florengray
florengray Oct 02, 2007 at 08:13:35 (UTC)
Goto Top
Ja schon, aber wenn ich eine Batch als "Befehle nutzen" übergebe, dann läuft Acronis bei mir immer in einer Endloschleife!?
Warum weiss ich nicht.

Ich müsste also meine Batch mit einer vbs Datei verbinden.
Ok, das geht.
Aber ich bin in Sachen VBS nicht wirklich gut und müsste also Fragen, wie ich von meiner Batch die "Tastendrücke" an mein vbs übergeben könnte.
Es wäre gut wenn ich mein vbs nur einmal starten müsste, denn ich könnte bei der Gelegenheit gleich mehrere "Routinen" an mein vbs weiterleiten.
Es wäre blöde für jede einzelne Routine ein neues Vbs zu starten.

Kann man denn per Vbs eine art Errorlevelabfrage einleiten?