[Batch-Datei] Batch Datei während eines Programmes ausführen.

albaum

Ensign
Registriert
Juli 2014
Beiträge
172
Moin,

ich schreibe derzeit eine Batch Datei welche ich gerne in einem Spiel benutzen will, jedoch werde ich immer auf den Desktop gekickt sobald ich mit einem Hotkey diese Batch Datei benutze.

Der Hotkey ist mit diesem gefüllt:
Code:
 cmd.exe /c start /min vereinfachung.bat

Nun meine Frage an euch, gibt es eine Möglichkeit dass die Konsole diesen Befehl im Hintergrund ausführt ohne dass ich auf den Desktop gekickt werde?

Danke im voraus für die Hilfe!!
 
Also habe da noch keine wirklich geschrieben, jedoch benutze ich diese immer wenn ich Internet Probleme habe (Das Internet reagiert einfach nicht mehr und muss dann meinen Lan-Stecker raus und rein Stecken oder nur noch F1 drücken durch die Batch Datei => werde aber beim F1 drücken auf den Desktop geworfen was sehr nervig ist...)

Der Code für die Internet_Fixen.bat:
Code:
 @echo off
netsh interface set interface LAN-Verbindung disabled
timeout /t 1
netsh interface set interface LAN-Verbindung enabled
exit
 
Das Problem ist zumindest der Aufruf von start, welches ein neues Fenster öffnet, um die Batchdatei darin auszuführen.

Was nicht notwendig ist, da Batchdateien im Kontext von cmd.exe ausgeführt werden und die gerade eben erst gestartet wurde.

Es reicht also, eine Verknüpfung anzulegen, welche explizit die Batchdatei startet. Dann in den Optionen der Verknüpfung "Minimiert ausführen" auswählen.

Als nächstes müßtest Du noch schauen, ob der Focus an die Verknüpfung übergeben wird, wenn Du den Hotkey verwendest. Das kann man abschalten. Hab allerdings grad nicht im Kopf, wo. Taskbar Notifications nicht vergessen (wenn man den Focus nicht automatisch übergibt, blinkt standardmäßig das zugehörige Icon in der Taskleiste und klaut ggf stattdessen den Focus).


ALTERNATIV könntest Du schauen, ob die Batchdatei per Taskplaner auszuführen geht. Der kennt unter "Bedingungen" die Option "Netzwerkverbindung nicht verfügbar". Wäre die Frage, ob das die Situation bei Dir abfängt; falls ja, würde immer dann, wenn das Netzwerk wegbricht, die Batchdatei ausgeführt werden.

Müßtest Du aber schauen, ob das so tut.

Oder Du läßt das alles weg, baust eine Batchdatei mit einer Endlosschleife, läßt mit Zeitabstand X "irgendwen" anpingen und prüfst den Fehlerstatus (errorlevel). Ist der ungleich 0, gab es einen Fehler, ie. das hat nicht funktioniert, ie. das Netzwerk muß reinitialisiert werden (unter der Annahme, daß das bei Dir das Problem behebt).

Müßtest dann nur noch daran denken, die Batchdatei vorm Spielen zu starten und nach dem Spielen zu beenden.
 
Es reicht also, eine Verknüpfung anzulegen, welche explizit die Batchdatei startet. Dann in den Optionen der Verknüpfung "Minimiert ausführen" auswählen.

Also mit:

Code:
 cmd.exe /c start /min Internet_fixen.bat

wird ja die Batch-Datei minimiert gestartet. Wäre damit dieser Punkt erfüllt?



Als nächstes müßtest Du noch schauen, ob der Focus an die Verknüpfung übergeben wird, wenn Du den Hotkey verwendest. Das kann man abschalten. Hab allerdings grad nicht im Kopf, wo. Taskbar Notifications nicht vergessen (wenn man den Focus nicht automatisch übergibt, blinkt standardmäßig das zugehörige Icon in der Taskleiste und klaut ggf stattdessen den Focus).

Sorry ich weiß echt wie ich das mit dem Focus und der Taskbar Notifications machen soll. Beschäftige mich noch nicht solange mit Batch Dateien und mit Google finde ich auch nichts wenn ich "Focus übergeben" oder ähnlichen suche.
 
da wirst du wohl in powershell auch tendenziell bei sowas mehr möglichkeiten um Events abzufangen.

z.B. über get-process ; und außerdem hast du auch verschiedene möglichkeiten eine batch zu starten bzw. die befehle auszuführen z.b. über nonew window

http://www.admin-source.de/BlogDeu/...n-ein-externes-programm-executable-zu-starten

Wenns in Batch geht schön und gut; falls du nicht weiterkommst lege ich die Powershell ans Herz
 
Würde es halt gerne über Batch so konstrurieren dass ich einfach nicht aus dem Programm - auf den Desktop - fliege...
Den no new window Befehl gibt es ja nicht in der normalen Konsole oder? Weil gefunden habe ich so einen nicht...

Wäre halt schön wenn mir jemand evtl. ne Möglichkeit zeigen könnte weil ich wie gesagt irgendwie nichts finde.
 
Ein paar Hinweise hast du ja bekommen. Du wirst da nun ein bisschen rumprobieren müssen und schauen was passt. Wie gesagt, ich denke du hast in Powershell mehr Optionen die dich weiter bringen.

Es ist halt eh ein gefummel was du da machst; und keine richtige Lösungsbehebung.
 
Zurück
Oben