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

Я использую Windows 7 home edition. Я хочу заставить свой компьютер ждать определенное количество времени, а затем подать звуковой сигнал в предупреждении прямо перед тем, как он завершит программу. В качестве теста я написал следующий пакетный файл, чтобы проигрыватель Windows Media воспроизводил радио, ждал 10 секунд, затем издавал звуковой сигнал и выключал его:

@echo off
start "_" "C:Program Files (x86)Windows Media Playerwmplayer.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 (ничего не Эхо). Итак, проведя некоторое время в поисках способа вызвать звуковой сигнал, который не включал 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 Playerwmplayer.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

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

8
задан Der Hochstapler
29.12.2022 22:37 Количество просмотров материала 2506
Распечатать страницу

2 ответа

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

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

copy con beep.cmd

Ctrl+G, Ctrl+Z

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

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

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

4
отвечен nhinkle 2022-12-31 06:25

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

в противном случае, Стив Гибсон (создатель знаменитой утилиты SpinRite disk repair) имеет бесплатный инструмент командной строки под названием "Wizmo", который может играть .WAV-файл из пакетного файла:

Wizmo (установка не требуется - это автономный инструмент)

  http://www.grc.com/wizmo/wizmo.htm

Я надеюсь, что это может сделать работу за вас, а также (если это так, то вы, очевидно, нужно записать звуковой сигнал в .WAV-файл.)

0
отвечен Randolf Richardson 2022-12-31 08:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх