GetKeyboardState 這個函式我用來檢測判斷是否某一個按鍵被按下,按照msdn上面的檔案說明這個是用來檢測物理中斷的,可是我在模擬按鍵的時候發現keybd_event 這個api不斷發送按下和松開模擬按鍵,會干擾這個state回傳的結果,也就是說不是檔案上說的那樣是檢測物理中斷的,邏輯也可以干擾的是不是啊???測驗了無數遍結果還是一樣,在按下x鍵的時候不斷發送模擬按鍵來干擾回傳的結果有正有負,微軟手冊錯了???
#include <windows.h>
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
int main(int argc, char* argv[])
{
while(1){
printf("%d\n",KEYDOWN(88));
Sleep(500);
}
return 0;
}
發送keybd_event的代碼就不貼出來了
uj5u.com熱心網友回復:
補充下上面說明開始有點不準,是檢測是否一直被按下狀態,理論上來說一直回傳結果是負的才對,結果干擾后有非負數出現uj5u.com熱心網友回復:
想得到物理的按鍵狀態,請使用WinIO.sys轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/89685.html
標籤:硬件/系統
