首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

遊戲客戶端「老闆鍵」實現思路:避開熱鍵衝突與殺毒軟體誤報

     編輯:程式設計綜合問答

常見方案痛點

  • 系統熱鍵(RegisterHotKey):易被其他進程搶佔、失效。
  • 鍵盤鉤子(SetWindowsHookEx(WH_KEYBOARD_LL)):常被殺毒軟體判定為鍵盤記錄器而報毒攔截。

替代方案:WinIO 驅動級輸入模擬

使用 WinIO(或 InpOut32、WinRing0)直接操作鍵盤控制器端口(0x60/0x64),繞過 Windows 消息循環與鉤子機制:

  • 優點:無需鉤子、不佔用熱鍵、難以被殺毒軟體檢測為惡意行為。
  • 缺點:需驅動簽名(Win10+ 需測試模式或 WHQL 憑證)、需管理員權限、部分筆記本 EC 控制器不相容。

其他可行路徑

  1. Raw Input (WM_INPUT):註冊原始輸入裝置,接收鍵盤數據,不經過鉤子鏈,殺毒軟體較少攔截。
  2. 用戶態鉤子 + 白名單:與主流殺毒廠商溝通提交樣本加白,或簽名驗證降低誤報。
  3. 遊戲內建熱鍵設定:讓玩家自定義組合鍵,避開常見衝突鍵(如 Win+D、Alt+Tab)。

建議架構

// 偽代碼:Raw Input 監聽特定組合鍵
RAWINPUTDEVICE rid = { 0x01, 0x06, RIDEV_INPUTSINK, hwnd };
RegisterRawInputDevices(&rid, 1, sizeof(rid));
// WM_INPUT 處理中檢測 Ctrl+Alt+B 等組合,觸發最小化/隱藏邏輯
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved