gergta
Goto Top

Vor Beenden einen Befehl ausführen?

Ich arbeite grad an einem Radioprogramm und hab grad dieses Problem:

Ich möchte, dass der Player beim beenden der Batch geschlossen wird (taskkill /f /im mplay32.exe)! Geht das?

Content-Key: 191681

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

Printed on: April 23, 2024 at 22:04 o'clock

Member: pieh-ejdsch
pieh-ejdsch Sep 23, 2012 updated at 15:55:26 (UTC)
Goto Top
moin GERgta,

wenn diese Zeile als letztes in den Batch abgearbeitet wird, dann wird der Prozess mplay32.exe beendet.

Gruß Phil
Member: GERgta
GERgta Sep 23, 2012 at 15:57:33 (UTC)
Goto Top
Ich meinte das, wenn der Benutzer das über den Schließen-Button von Windows beendet, das sich dann der Befehl abspielt...
Member: pieh-ejdsch
pieh-ejdsch Sep 23, 2012 at 16:04:42 (UTC)
Goto Top
Windows hat einen Start-Knopf und dort einen mit der Bezeichnung Herunterfahren.

Wenn Windows heruntergefahren wird werden doch eh alle Prozesse beendet.

Gruß Phil
Member: GERgta
GERgta Sep 23, 2012 at 16:11:58 (UTC)
Goto Top
Das meint ich nicht: Ich möchte, wenn mein Programm beendet wird, das der Prozess "mplay32.exe" beendet wird. Ich möchte das es aber mit dem normalen Schließen Knopf geht... Dieser Knopf: https://dl.dropbox.com/u/49668400/button.png
Member: VinzenzUhr
VinzenzUhr Sep 23, 2012 at 16:22:39 (UTC)
Goto Top
Ich bezweifle dass das geht, weil ein batch arbeitet sich immer von oben des Codes nach unten und wenn du ihn dabei unterbrichst, stoppt er sofort.
Da musst du schon eine Programmiersprache wie VB.net verwenden.
Dort kannst du dies machen

Freundliche Grüsse
Mitglied: 60730
60730 Sep 23, 2012 updated at 19:33:26 (UTC)
Goto Top
Ich arbeite grad an einem Radioprogramm und hab grad dieses Problem:
Das ist aber mal ne nette begruessung, aber wieviel grad hast du denn im moment?

geht das?
Hast denn beine?

hier spielen sich immer lustige fragen, die erst nur massiven einsatz von gegenfragen irgendeinen sinn ergeben ab, hat denn wieder einer quellcode mit quaelcode verwechselt?


Von mir ein klares face-sad

@ pietsch machst du yoga?

Gruss
Member: Lochkartenstanzer
Lochkartenstanzer Sep 23, 2012, updated at Sep 24, 2012 at 07:21:42 (UTC)
Goto Top
Zitat von @GERgta:
Ich möchte, dass der Player beim beenden der Batch geschlossen wird (taskkill /f /im mplay32.exe)! Geht das?

Und ich möchte, daß auch die Neulinge beherzigen, daß man nur dann sinnvolle Anworten bekommt, wenn sie nicht voraussetzen, daß die Kollegen hier alle funktionierende Kristallkugel haben. Geht das?

lks

nachtrag: Zur Lösung deines Problems

Starte einfah einen zweiten Job, der überwahct, ob die Batch noch läuft und sobald der weg ist schickt er halt das Kill-Kommando.

Und wenn der User den zweiten Job killt? dann mahst Du halt dafür auch eine überwachungsjob. face-smile
Member: pieh-ejdsch
pieh-ejdsch Sep 24, 2012 at 08:20:38 (UTC)
Goto Top
moin LimboSeil,
einer quellcode mit quaelcode verwechselt?
...
@ pietsch machst du yoga?

Ich mach ab und zu ein paar Dehnübungen, ist aber nicht mit Yoga zu verwechseln.
In Yoga steckt mit zu viel quaelcode!

@ TO: eventuell geht das über die Aufgabenplanung in einem Ereignis zu triggern. Dazu gibt es noch einen Verweis von mir.

Gruß Phil
Member: GERgta
GERgta Sep 24, 2012 at 11:49:45 (UTC)
Goto Top
Starte einfah einen zweiten Job, der überwahct, ob die Batch noch läuft und sobald der weg ist schickt er halt das
Kill-Kommando.

Das einzigste Problem bei der sache ist, das amehrere Batch Dateien Ausgeführt werden, was heist das der CMD.EXE Prozess mehrmals ausgeführt wird... Wie kann man überprüfen, ob eine BAT-Datei offen ist?
Member: pieh-ejdsch
pieh-ejdsch Sep 24, 2012 at 12:27:08 (UTC)
Goto Top
Über Tasklist lässt sich der Batch herauslesen, (Filtern) zumindest die PiD, dann killen.

zB. Batch-Abfrage, ob bestimmte excel-Datei geöffnet ist und diese dann auch schließen (können)

am Einfachsten ist es, ein belegtes offenes Handle des Batches zu beschreiben:
 rem Batch starten mit Umleitung von Handle 9 auf eine Prüfdatei:
batch.cmd 9>"%temp%\Prüfdatei.test"

 rem wird nun die Prüfdatei zum schreiben/anheften geöffnet:
 rem wenn schon ein Handle offen ist bzw. Schreibschutz drauf ist,#
 rem dann wäre das anheften nicht erfolgreich
 rem CMD.exe meldet einen Fehler!
(type nul >>"%temp%\Prüfdatei.test" ) && echo jetzt könnte hier der Abschussbefehl kommen. ||echo ist leider noch nicht möglich

Natürlich könnte jedes andere Programm die Datei zum Beschreiben sperren, was aber ziehmlich unwarscheinlich ist.
Sauberer ist da schon das über die Aufgabenplanung zu lösen.

Gruß Phil