Я использую Windows 7 Home Edition. Я хочу заставить свой компьютер подождать определенное время, а затем подать звуковой сигнал предупреждения, прежде чем он завершит работу программы. В качестве теста я написал следующий пакетный файл, чтобы проигрыватель Windows Media проигрывал радио, подождал 10 секунд, затем подал звуковой сигнал и выключил его:
@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
Примечание: следуя инструкциям, которые я нашел в другом вопросе на этом сайте, «^ G» - это символ, который вы получаете, когда набираете control + G в командной строке. Похоже, что он не появляется на этом сайте, поэтому я заменил его на ^ G.
Это сработало отлично. Пока я не попытался запустить его автоматически с помощью планировщика задач Windows. Я пробовал это несколько раз, но он не подал звуковой сигнал. Другие функции работали нормально, но звукового сигнала не было.
Сценарий не запускался в окне при запуске планировщиком задач, и я пришел к выводу, что это должно вызвать проблемы с командой echo (ничего не отображать). Итак, потратив некоторое время на поиск метода подачи звукового сигнала, не включающего эхо, я в конечном итоге переписал все это в форме консольной программы VB .NET:
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
Это работает так же, включая тот факт, что он звучит только при вызове вручную. При вызове из планировщика задач он также не подает звуковой сигнал. Я не уверен, что еще попробовать здесь. Любая помощь будет оценена.