使用者將程式(如寬帶連線)放入「開始 → 所有程式 → 啟動」資料夾,導致開機自動執行。現希望在不刪除該快捷方式的前提下,阻止其開機自動啟動。
將原本的可執行檔替換為一個 VBScript 腳本,腳本內加入熱鍵判斷邏輯:若檢測到特定按鍵(如 X)被按下,則跳過啟動目標程式;否則正常啟動。這樣既保留了快捷方式,又能在需要時手動干預。
' 啟動攔截腳本 launcher.vbs
Set WshShell = CreateObject("WScript.Shell")
' 定義熱鍵:這裡以 X 鍵為例,實際可用 GetAsyncKeyState API 判斷
' 為了演示簡單,這裡用 MsgBox 模擬用戶選擇
If MsgBox("是否啟動目標程式?按「否」取消啟動", vbYesNo + vbQuestion, "啟動確認") = vbNo Then
WScript.Quit
End If
' 執行真正的目標程式
WshShell.Run "rundll32.exe rnaui.dll,RnaDial", 1, False
若需完全無感知,可在 VBScript 中透過 WScript.Shell 呼叫 Windows API GetAsyncKeyState 檢測開機時是否按下特定鍵,決定是否啟動主程式。此法需簽名或降低安全策略,建議僅在受信環境使用。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run 對應鍵值。gpedit.msc 中配置「執行這些使用者登入時的程式」限制。根據實際場景選擇最適合的方式,VBScript 包裝法適合需保留快捷方式且偶爾手動控制的情況。