Haben Sie ein bereits geöffnetes Programm in Abhängigkeit von der Eröffnung eines anderen Programms geschlossen?

394
BNM51306

Ich bin mit Batch-Dateien sehr neu und bin auf ein Problem gestoßen, das Googling nicht lösen konnte. Ich hoffe, dass mir jemand dabei helfen kann, weil es ziemlich doof ist. Meine Absicht ist es, ein Front-End-Programm für die Emulation und eine Windows Media Player-Wiedergabeliste gleichzeitig zu öffnen, damit Menümusik abgespielt werden kann, und wenn der WMP geschlossen wird, wenn ich ein Spiel starte, und beim Schließen wieder geöffnet wird Spiel, zurück zum Front-End. Die Litanei der Probleme, denen ich begegnet bin, sind:

  1. Das Frontend wird im Vollbildmodus geöffnet und hat Priorität. Ich kann WMP gleichzeitig öffnen, aber sobald das Front-End ausgeführt wird, scheint es zu verhindern, dass andere Dateien / Programme gestartet / geschlossen werden.
  2. Das Frontend listet Spiele für mich auf. Wenn ich einen auswähle, wird das Front-End in den Hintergrund minimiert und der Emulator gestartet, der dann das Spiel ausführt. Wenn ich das Spiel verlasse, wird das Front-End neu gestartet. Der Emulator selbst schließt auch das Starten der meisten Dateien / Programme aus. Wenn ich ein Hotkey-Setup zum Starten einer .bat-Datei bekam, die WMP nach dem Beenden eines Spiels öffnet, wurde WMP erfolgreich gestartet, der Emulator wurde jedoch angehalten, und das Beenden konnte nicht ordnungsgemäß beendet werden.
  3. Um WMP als Wiedergabeliste zu starten, bei der bereits Musik im Shuffle-Modus abgespielt wird, starte ich als "AP1.wpl". Dies ist die Datei der Wiedergabeliste. Die einzige Möglichkeit zum Beenden besteht darin, "wmplayer.exe" als taskkill auszuführen, also nicht als dasselbe Programm getaggt.
  4. Die .exe des Front-End wird nicht über eine .bat-Datei gestartet. Meine Problemumgehung bestand also darin, eine .vbs-Datei zu erstellen, deren Abkürzungen als Hotkey gestartet werden, und die .vbs-Datei in meine .bat-Datei einzufügen. Daher beschränkt sich dies darauf, WMP mit dem Front-End zu kennzeichnen. Da es jedoch nie wirklich geschlossen wird, und blockiert alle Befehle, solange es offen ist. Ich glaube nicht, dass es wichtig ist.

Ich denke, das sind wirklich alle erwähnenswerten Punkte, um die Situation zu erklären.

Die eine Idee, die ich habe, ist, dass, wenn ich ein Spiel im Front-End auswähle, dieses minimiert und für 2-3 Sekunden eine Eingabeaufforderung öffnet, dann den Emulator / das Spiel startet. Diese kurze Eröffnung erlaubt es mir, Programme zu starten und zu schließen, bevor der Emulator mich wieder schließt. Wenn ich nur das Schließen und Öffnen von WMP an die Eingabeaufforderung binden könnte, wird beim Starten des Front-End WMP gestartet, und beim Starten eines Spiels wird WMP geschlossen, sobald die CMD geöffnet wird. Wenn das Spiel beendet wird (sowie die cmd), wird die .wpl-Wiedergabeliste gestartet. Es müsste diese Art von Schleife sein, abhängig davon, wann die CMD geöffnet / geschlossen wird. So weit habe ich (es ist nicht viel):

@echo off start hotkey1.vbs C:\AP\AP1.wpl 

Die .vbs startet das Front-End und AP1.wpl ist die Wiedergabeliste. Und irgendwie muss wmplayer.exe durch das Erscheinen und Verschwinden von cmd.exe von selbst taskkill'd sein.

0
Die Logik, die ich verwende, ist nicht viel, das meiste davon ist nur die Theorie dessen, was ich tun möchte. Die Gesamtheit meiner Batchdatei ist das, was ich oben aufgeführt habe. Dies ist die .vbs: Set WshShell = WScript.CreateObject ("WScript.Shell") WshShell.SendKeys "^% 5" Wenn Sie irgendwelche Ideen haben, ist dies alles eine saubere Sache. BNM51306 vor 6 Jahren 0
Ich danke Ihnen bisher für Ihre Hilfe! Es war eine anstrengende Erfahrung, nur zu versuchen, all das durchzudenken. Ich bin mit so ziemlich all dem nicht vertraut und kenne nur die einfachste Batch-Syntax. Die .vbs war einfach etwas, was ich gegoogelt habe. Ich glaube nicht, dass ich die Bearbeitung von Programm-Skripten beschreiten möchte. Ich wäre begeistert, wenn meine Absichten nur eine .bat enthalten könnten BNM51306 vor 6 Jahren 0
Ich habe keine Ahnung von vbs und ich bin mir nicht sicher, ob ich Ihr gesamtes Problem habe, aber es könnte eine Idee sein, tasklistüber die Batch-Datei nach Abfragen zu fragen, ob der Emulator und der Mediaplayer ausgeführt werden. Florian Straub vor 6 Jahren 0

0 Antworten auf die Frage