Wie kann ich den Computer mit einem Skript oder einem Programm piepsen lassen, das vom Windows Task Scheduler aufgerufen wird?

19495
gorcq

Ich verwende Windows 7 Home Edition. Ich möchte, dass mein Computer eine gewisse Zeit wartet, bevor er ein Programm beendet. Als Test schrieb ich die folgende Batchdatei, um Windows Media Player das Radio abzuspielen, 10 Sekunden warten, dann einen Signalton zu hören und es auszuschalten:

@echo off start "_" "C:\Program Files (x86)\Windows Media Player\wmplayer.exe" "http://www.cpr.org/content_category_templates/listenTemplate/listenClassical48.asx" sleep 10 @echo ^G @echo ^G @echo ^G @echo ^G taskkill /im wmplayer.exe /f 

Hinweis: Befolgen Sie die Anweisungen, die ich in einer anderen Frage auf dieser Website gefunden habe. Das Zeichen "^ G" ist das Zeichen, das Sie erhalten, wenn Sie an einer Eingabeaufforderung Control + G eingeben. Es scheint nicht auf dieser Seite zu erscheinen, also habe ich es durch ^ G ersetzt.

Das hat perfekt funktioniert. Bis ich also versuchte, es automatisch mit dem Windows Task Scheduler auszuführen. Ich habe dies mehrmals versucht und es piepte nicht. Die anderen Funktionen funktionierten gut, aber es war kein Piepton zu hören.

Das Skript wurde nicht in einem Fenster ausgeführt, als es vom Task-Scheduler gestartet wurde, und ich kam zu dem Schluss, dass dies Probleme mit dem Befehl Echo verursachen muss (nichts, was zu echo ist). Nachdem ich einige Zeit damit verbracht hatte, nach einer Methode zu suchen, bei der der Piepton ohne Echo ausgelöst wurde, schrieb ich das Ganze schließlich in Form eines VB .NET-Konsolenprogramms um:

Imports System.Threading  Module Beep  Sub Main() Dim wmp As New System.Diagnostics.Process wmp.StartInfo.FileName = "C:\Program Files (x86)\Windows Media Player\wmplayer.exe" wmp.StartInfo.Arguments = "http://www.cpr.org/content_category_templates/listenTemplate/listenClassical48.asx" wmp.StartInfo.WindowStyle = ProcessWindowStyle.Hidden wmp.Start() Thread.Sleep(New TimeSpan(0, 0, 10)) Console.Beep() Console.Beep() Console.Beep() Console.Beep() wmp.Kill() End Sub  End Module 

Dies funktioniert auf die gleiche Weise - einschließlich der Tatsache, dass es nur beim manuellen Aufruf piept. Beim Aufruf vom Taskplaner ertönt auch kein Piepton. Ich bin mir nicht sicher, was ich sonst noch versuchen sollte. Jede Hilfe wäre dankbar.

4

2 Antworten auf die Frage

4
nhinkle

Möglicherweise gibt es ein Problem beim Versuch, das Media Player-System über ein Skript zu starten. Sie können ein Batch-Skript mit dem Ctrl+GZeichen erstellen, das Sie erwähnt haben, und es wird der System-Piepton verwendet. Ich glaube nicht, dass die Ctrl+CMethode, über die Sie gesprochen haben, tatsächlich funktioniert.

Öffnen Sie eine Eingabeaufforderung, wechseln Sie in das Verzeichnis, in dem Sie die Batchdatei speichern möchten, und geben Sie die folgenden Befehle ein:

copy con beep.cmd 

Ctrl+ G, Ctrl+Z

Wenn Sie jetzt ausführen beep.cmd, sollte der System-Piepton verwendet werden.

Ich habe eine Systemaufgabe erstellt, um diese Stapeldatei auszuführen. Wenn ich die Aufgabe manuell ausführe, wird das Befehlsfenster angezeigt und es ertönt ein Signalton, der dann beendet wird.

Dies funktioniert so, dass in diesem Fall alles, was Sie im Befehlsfenster eingeben, in die angegebene Datei kopiert wird beep.cmd. Sie können nur setzen in nicht ^Gin der Datei, auch wenn das, was auf dem Bildschirm erscheint, denn das ist die Eingabe eines wirklich ist nur die Eingabe ^und G, während ^Ginsgesamt tatsächlich eine Darstellung eines anderen ASCII - Zeichen ist. Mit der Befehlsfenstermethode können Sie den tatsächlichen Tastendruck in der Datei speichern. Sie können die Batchdatei dann bearbeiten, wenn Sie andere Aufgaben ausführen möchten. Achten Sie darauf, die Zeile mit dem Sonderzeichen beizubehalten. Es wird wahrscheinlich nur wie eine leere Box im Notizblock aussehen.

Sorry, dass ^ C ein Tippfehler ist. Ich habe Strg + G in der eigentlichen Batchdatei. Ich bin mir ziemlich sicher, dass das stimmt, weil es funktioniert, wenn ich die Datei manuell starte. Nur um sicherzugehen, habe ich die Batch-Datei jetzt mit den gleichen Ergebnissen ordnungsgemäß neu geschrieben. Ich werde meine Frage bearbeiten, um zukünftige Verwirrung zu vermeiden. gorcq vor 13 Jahren 0
0
Randolf Richardson

Suchen Sie in Ihrem Taskplaner in den Eigenschaften Ihrer geplanten Task nach einer Option mit dem Namen [etwas in der Art von] "Interaktion mit Benutzer" oder "Interaktiv" (oder ähnliches). Es sollte ein Kontrollkästchen sein, und wenn Sie es aktivieren, sollte Ihre Aufgabe sowohl in der GUI als auch im Audiosystem angezeigt werden.

Andernfalls verfügt Steve Gibson (der Schöpfer des bekannten SpinRite-Dienstprogramms zur Datenträgerreparatur) über ein Freeware-Befehlszeilenprogramm namens "Wizmo", das eine .wav-Datei aus einer Batchdatei abspielen kann:

  Wizmo (keine Installation erforderlich - dies ist ein eigenständiges Tool)
  http://www.grc.com/wizmo/wizmo.htm

Ich hoffe, dass dies den Job auch für Sie erledigen kann (wenn dies der Fall ist, müssen Sie natürlich einen Signalton in einer .wav-Datei aufnehmen).

Ich sehe keine Optionen, die das Wort interaktiv oder ähnlich enthalten. Ich werde dieses Wizmo-Ding genauer betrachten müssen. gorcq vor 13 Jahren 0
@gorcq: Ich erinnere mich, diese Option in Windows XP gesehen zu haben, aber in Windows 7 scheint sie verschwunden zu sein. Das ist zu schade (ich wünschte, Microsoft würde so gute Features nicht fallen lassen). = ( Randolf Richardson vor 13 Jahren 0
Ich habe die interaktive Option unter Windows Server 2008 (Vista Server) gesehen. Hätten sie es aus 7 entfernt, wenn der Taskplaner für diese beiden Windows-Versionen dieselbe DLL verwendet? ** EDIT ** Ich kann mich irren. vor 13 Jahren 0
Ich habe es jetzt mit wizmo ausprobiert und bekomme das gleiche Problem: Es funktioniert gut, wenn es manuell von der Befehlszeile aus ausgeführt wird, aber es ertönt kein Signalton, wenn der Taskplaner es ausführt. Ich habe gerade die oben abgebildete Batchdatei bearbeitet und alle Instanzen von "@echo ^ C" durch "wizmo play =" C: \ Windows \ Media \ Windows Critical Stop.wav "" ersetzt. gorcq vor 13 Jahren 0
@Randolf Potter: Danke für die Bestätigung, dass ich mich eher erinnere als vorzustellen! Randolf Richardson vor 13 Jahren 0
@gorcq: Der Taskplaner muss also alle GUI- und Audioaktivitäten unterbinden. = ( Randolf Richardson vor 13 Jahren 0
Das ist das Seltsame - es verhindert nicht, dass ALLE Audiosignale verwendet werden. Windows Media Player läuft einwandfrei. Nur die Pieptöne werden verhindert. gorcq vor 13 Jahren 0
@Randolph Potter: Danke für die Bestätigung, dass ich mich eher erinnere als vorzustellen! (Ich kann meinen vorherigen Kommentar nicht bearbeiten, daher habe ich diesen mit der korrekten Schreibweise von Randolphs Namen hinzugefügt.) Randolf Richardson vor 13 Jahren 1