keydb

keydb,模擬鍵盤動作API函式keydb_event,它可以模擬對鍵盤上的某個或某些鍵進行按下或放開的動作。

VOID keybd_event(

BYTE bVk, // 虛擬鍵值。

BYTE bScan, // 硬體掃描碼。

DWORD dwFlags, // 動作標識。

DWORD dwExtraInfo // 與鍵盤動作關聯的輔加信息。

);

其中,bVk表示虛擬鍵值,其實它是一個BYTE類型值的宏,其取值範圍為1-254。有關虛擬鍵值表請看最下文檔說明。bScan表示當鍵盤上某鍵被按下和放開時,鍵盤系統硬體產生的掃描碼,我們可以使用MapVirtualKey()函式在虛擬鍵值與掃描碼之間進行轉換。dwFlags表示各種各樣的鍵盤動作,它有兩種取值:

KEYEVENTF_EXTENDEDKEY和KEYEVENTF_KEYUP。

下面我們使用一段代碼實現在遊戲中按Ctrl+R快捷鍵對攻擊對象進行攻擊。

keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0); //按下CTRL鍵。

keybd_event(0x52,MapVirtualKey(0x52,0),0,0);//鍵下R鍵。

keybd_event(0x52,MapVirtualKey(0x52,0), KEYEVENTF_KEYUP,0);//放開R鍵。

keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),

KEYEVENTF_KEYUP,0);//放開CTRL鍵。

這裡是有問題的,會導致鍵不釋放:

API.keybd_event(0xA4,0, 0, 0); //按下ALT鍵。 Thread.Sleep(100); API.PostMessage(fatherhwnd, API.WM_KEYDOWN, (int)Keys.F, 0); Thread.Sleep(100); API.keybd_event(0xA4, 0, 2, 2);//放開ALT鍵。

虛擬鍵值表

相關詞條

熱門詞條

聯絡我們