choice
コマンドを次のようなものに置き換えてみてください。
set /p choice="Please enter a choice: "
ユーザーがEnterキーを押す必要がありますが、少なくともビープ音は鳴りません。
HKCU\AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Current\(Default)
本当に難しい方法でデフォルトのサウンドをオフにしたい場合は、またはのいずれかにあると思いますHKCU\AppEvents\Schemes\Apps\.Default\AppGPFault\.Current\(Default)
。
これが概念実証です。
@echo off
setlocal
:: stop bleeping service
start /wait %comspec% /Q /C "sc stop beep" >nul 2>&1
:: store current event setting for Asterisk
set loc=HKCU\AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Current
for /f "tokens=3*" %%I in ('reg query %loc%') do (
set asterisk=%%I %%J
)
:: choice with service stopped and Windows Asterisk sound event still active
choice
:: set Windows Asterisk event sound to ""
reg add "%loc%" /v "" /t REG_SZ /d "" /f >NUL
:: choice with asterisk set to ""
choice
:: restore the sound
reg add "%loc%" /v "" /t REG_SZ /d "%asterisk%" /f >NUL
それでも問題が解決しない場合は、に置き換えSystemAsterisk
てみてくださいAppGPFault
。正直なところ、あなたの症状を再現することはできません。ビープ音を止めた後、無音が聞こえます。そのため、ユーザーがスペースバーを押してビープサービスが停止したときに、どのイベントがトリガーされるのか完全にはわかりません。