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-ID: 191681

Url: https://administrator.de/forum/vor-beenden-einen-befehl-ausfuehren-191681.html

Ausgedruckt am: 23.12.2024 um 15:12 Uhr

pieh-ejdsch
pieh-ejdsch 23.09.2012 aktualisiert um 17:55:26 Uhr
Goto Top
moin GERgta,

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

Gruß Phil
GERgta
GERgta 23.09.2012 um 17:57:33 Uhr
Goto Top
Ich meinte das, wenn der Benutzer das über den Schließen-Button von Windows beendet, das sich dann der Befehl abspielt...
pieh-ejdsch
pieh-ejdsch 23.09.2012 um 18:04:42 Uhr
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
GERgta
GERgta 23.09.2012 um 18:11:58 Uhr
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
VinzenzUhr
VinzenzUhr 23.09.2012 um 18:22:39 Uhr
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
60730
60730 23.09.2012 aktualisiert um 21:33:26 Uhr
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
Lochkartenstanzer
Lochkartenstanzer 23.09.2012, aktualisiert am 24.09.2012 um 09:21:42 Uhr
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
pieh-ejdsch
pieh-ejdsch 24.09.2012 um 10:20:38 Uhr
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
GERgta
GERgta 24.09.2012 um 13:49:45 Uhr
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?
pieh-ejdsch
pieh-ejdsch 24.09.2012 um 14:27:08 Uhr
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