Как я могу заставить компьютер подать звуковой сигнал из сценария/программы, названного планировщиком задач Windows?

Я использую версию для домашнего использования Windows 7. Я хочу заставить свой компьютер ожидать определенное количество времени, затем подать звуковой сигнал в предупреждении прямо, прежде чем это завершит программу. Как тест, я записал следующий пакетный файл, чтобы заставить Windows Media Player играть с радио, ожидать 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", являются символом, который Вы получаете при вводе управления + G в командной строке. Это, кажется, не появляется на этом сайте, таким образом, я заменил его ^G.

Это работало отлично. До, то есть, я попытался заставить его выполнить автоматически использование Windows Task Scheduler. Я несколько раз пробовал это, это не подавало звуковой сигнал. Другие функции хорошо работали, но никакой звуковой сигнал не был слышимым.

Сценарий не работал в окне при запуске планировщиком задач, и я пришел к заключению, что это должно вызвать проблемы с командой эха (ничто для повторения к). Так, после проведения некоторого времени, ища метод порождения звукового сигнала, который не включил эхо, я в конечном счете переписал все это в форме консольной программы.NET VB:

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

Это работает тот же путь — включая то, что он только подает звуковой сигнал при ручном вызове. При вызове из планировщика задач ему также не удается подать звуковой сигнал. Я не уверен, что еще попробовать, здесь. Любая справка ценилась бы.

4
задан 15.07.2014, 18:18

2 ответа

Возможно, что существует проблема с попыткой запустить систему медиаплеера из сценария. Можно создать сценарий пакетной обработки с Ctrl+G символ как Вы упомянули, и это будет использовать системный звуковой сигнал. Я не думаю Ctrl+C метод Вы говорили о на самом деле работах.

Откройте командную строку, каталоги изменения туда, где Вы хотите сохранить пакетный файл, и вводят следующие команды:

copy con beep.cmd

Ctrl+G, Ctrl+Z

Теперь, если Вы работаете beep.cmd, это должно использовать системный звуковой сигнал.

Я создал системную задачу выполнить этот пакетный файл, и когда я выполняю задачу вручную, командное окно появляется и подает звуковой сигнал, затем выходит.

Путем это работает, то, что это копирует то, что Вы вводите в командном окне в указанный файл в этом случае beep.cmd. Вы не можете просто вставить ^G в файле, даже при том, что это - то, что появляется на экране, потому что ввод, который действительно просто вводит ^ и G, в то время как ^G на самом деле представление другого символа ASCII в целом. При помощи метода командного окна можно сохранить фактическое нажатие клавиши в файл. Можно затем отредактировать пакетный файл, если Вы хотите, чтобы он сделал другие вещи, просто удостоверьтесь, что сохранили строку со специальным символом. Это будет, вероятно, просто похоже на пустое поле в блокноте.

4
ответ дан 07.12.2019, 20:44

Ищите опцию в своем Планировщике задач в свойствах Вашей Запланированной задачи, названных [что-то вроде] "взаимодействует с пользователем" или "интерактивный" (или что-то как этот). Это должен быть флажок, и если Вы включаете его затем, это должно вызвать Вашу задачу появиться в GUI, а также аудиосистеме.

Приводя это к сбою, у Steve Gibson (создатель известного диска SpinRite восстанавливают утилиту) есть бесплатно распространяемый инструмент командной строки под названием "Wizmo", который может играть .wav файл от пакетного файла:

 Wizmo (никакая требуемая установка - это - автономный инструмент),
 http://www.grc.com/wizmo/wizmo.htm

Я надеюсь, что это может сделать задание для Вас также (если оно сделает, то затем необходимо будет, очевидно, записать звук звукового сигнала в .wav файле).

0
ответ дан 07.12.2019, 20:44

Теги

Похожие вопросы