Windows 起動音等を消す WSH スクリプト
消します。
上記の音を消します。
Windows XP SP3 で動作確認を行いました。
注意点、keysend で操作を行っているので誤作動を防ぐために待機時間を多めにとっています。
処理が遅い場合は下記のように "WScript.Sleep" を短くしてください。
WScript.Sleep 100
逆に、処理が早すぎて誤動作が発生してしまう場合は値を大きくしてください。
soundkill.vbs を右クリックで保存してください。soundkill.vbs を実行すると、自動的に "サウンドとオーディオデバイスのプロパティ" を開き、上記 4 つの 音を "サウンドなし" に設定します。
ソースコード
Dim objWshShell '変数 objWshShell を宣言 Set objWshShell = WScript.CreateObject("WScript.Shell") 'WScript.Shell オブジェクトを変数 objWshShell へ代入 objWshShell.Run "control.exe mmsys.cpl ,1" '"サウンドとオーディオデバイスのプロパティ" の "サウンド" タブを開く Sub soundkill() 'Sub プロシージャ soundkill の定義、"サウンドなし" を設定する objWshShell.SendKeys "{DOWN}" '1 つ下へ移動 WScript.Sleep 500 '500 ミリ秒待機する objWshShell.SendKeys "{TAB}" '"サウンド" へフォーカスを移す WScript.Sleep 500 '500 ミリ秒待機する objWshShell.SendKeys "{BS}" '"サウンド" の指定を一旦削除 WScript.Sleep 500 '500 ミリ秒待機する objWshShell.SendKeys "{DOWN}" 'サウンド無しを指定 WScript.Sleep 500 '500 ミリ秒待機する objWshShell.SendKeys "~" '本当にサウンド無しでいいか確認、"はい" を選択 WScript.Sleep 500 '500 ミリ秒待機する End Sub 'Sub プロシージャの定義 ここまで Do Until objWshShell.AppActivate("サウンドとオーディオ デバイスのプロパティ") '"サウンドとオーディオ デバイスのプロパティ" が起動しているかチェック WScript.Sleep 1000 '起動していない場合は 1000 ミリ秒待機する Loop '起動チェックへ戻る objWshShell.SendKeys "{TAB 3}" '"プログラム イベント" の項へ移動 WScript.Sleep 500 '500 ミリ秒待機する objWshShell.SendKeys "{DOWN 2}" '2 つ下へ移動 WScript.Sleep 500 '500 ミリ秒待機する Call soundkill() '"Windows の起動" を選択、サウンドなしに Call soundkill() '"Windows の終了" を選択、サウンドなしに Call soundkill() '"Windows ログオフ" を選択、サウンドなしに Call soundkill() '"Windows ログオン" を選択、サウンドなしに objWshShell.SendKeys "~" 'ok WScript.Quit '処理を終了