Как запустить системный "гудок" из встроенного в компьютер динамика, используя командный файл?
Я написал пакетный скрипт в интерактивном режиме для выполнения некоторых задач.
Иногда выполнение этих задач занимает много времени, а затем пакет спрашивает, хочет ли пользователь перейти к следующей задаче или вернуться в главное меню пакета или... и т.д.
Теперь я хочу добавить команду "Интерактивный сигнал тревоги", которая будет издавать небольшой короткий звуковой сигнал (например, тот, который мы включаем на наших ПК), чтобы предупредить пользователя пакета о новых вопросах.
Я не знаю, возможно ли это или нет, но самое главное для меня - НЕ использовать приложение с графическим интерфейсом, такое как WMP или около того.
Я просто хочу сделать это из фона, даже если этот звуковой сигнал должен быть сделан из свободного динамика или с помощью стороннего CLI-приложения (кстати, я установил Cygwin на Win7-x64).
Обратите внимание, что я добавлю эту команду тревоги как раз перед интерактивными вопросами, ожидая ответа пользователя, чтобы перейти к следующему этапу, поэтому я не могу просто закончить пакет, издав настоящий звуковой сигнал об ошибке!
Итак, кто-нибудь, пожалуйста, скажите мне, как это сделать?
Ценю твою помощь :)
Ответы
Ответ 1
Невозможно ввести BEL
непосредственно в (например) блокнот.
Чтобы получить его, введите echo ^G>>yourbatch.bat
в командной строке (не набирайте ^
G
, а <Control>-G
, который будет отображаться как ^G
на экране). Это ставит странный вид персонажа в конец вашего файла. Это символ BEL
0x007 ( "control-G" ). Просто скопируйте/переместите его в любую команду echo
, как вам нравится. Также
set /p "input=^Ggive value: "
(где ^G
представляет странный char)
Ответ 2
rundll32.exe Kernel32.dll,Beep 750,300
или
rundll32.exe cmdext.dll,MessageBeepStub
или
rundll32 user32.dll,MessageBeep
С функциями rundll вам не понадобятся специальные символы, такие как ^G
. С помощью первого метода вы также можете установить частоту и время подачи звукового сигнала.
Вы можете также проверить это
Ответ 3
@echo off
echo BEEP.BAT by CSS---
echo PRESS ANY KEY TO HEAR A BEEP...
PAUSE>NUL
ECHO
echo I BEEPED
PAUSE
после эха есть код управления ASCII ^ G. Просто скопируйте этот код и сохраните его как ASCII/ANSI с помощью текстового редактора.
Ответ 4
используйте команду ECHO для эха CTRL G
Ответ 5
Я думаю, что лучшим решением является отображение ^G
файла из командной строки cmd, а затем введите этот файл из сценария, так что вам не нужно включать управляющие символы в сам пакетный файл:
C:\> echo ^G>beep.snd
Теперь в файле "beep.snd" есть символ ASCII 007, затем из файла .bat все, что вам нужно сделать, это напечатать его или скопировать на экран:
type beep.snd
или
copy beep.snd con > nul