GetKeyboardState

GetKeyboardState ,該函式將256個虛擬鍵的狀態拷貝到指定的緩衝區中。

函式說明

函式功能:該函式將256個虛擬鍵的狀態拷貝到指定的緩衝區中。
函式原型:BOOL GetKeyboardState(PBYTE IpKeyState);

參數部份

參數
IpKeyState:指向一個256位元組的數組,數組用於接收每個虛擬鍵的狀態
返回值:若函式調用成功,則返回0值。若函式調用不成功,則返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函式。
備註:應用程式可以調用該函式來檢取所有虛擬鍵的當前狀態。當鍵盤訊息被從該執行緒的訊息佇列中移去時,虛擬鍵的狀態發生改變。當鍵盤訊息被傳送到該執行緒的訊息佇列中,或者,當鍵盤訊息被傳送到其他執行緒的訊息佇列或被從其他執行緒的訊息佇列中檢取到時,虛擬鍵的狀態不發生改變。(例外:通過AttachThreadlnput連線的執行緒共享同一鍵盤狀態。)當函式返回時,由lpKeyState參數指向的每一個數組成員中都包含了一個虛擬鍵的狀態數據。若最高位被置為1,則該鍵處於down狀態;否則,該鍵處於up狀態。若最低位被置為1,則該鍵被觸發。當一個鍵被打開時稱之為被觸發,如Capslock鍵。若最低位被置為0,該鍵被關閉且不被觸發。一個觸發鍵也鍵盤上的指示燈(如果有的話)在該鍵被觸發時點亮,在不被觸發時滅掉。若要檢取單個虛擬鍵的狀態信息,可以調用GetKeyState函式。若要檢取任一虛擬鍵的當前狀態,而不管相應的鍵盤訊息足否己從訊息佇列中檢取到,可以使用GetAsyncKevState函式。應用程式可以使用虛擬鍵碼常數VK_SHIFT,VK_CONTROL和VK_MENU作為IpKeyState所指向的數組的下標。這樣給出的Shift,Ctrl,Alt鍵的狀態不區分左右鍵。應用程式也可以使用如下的虛擬鍵碼常數作為以上鍵的區分左右鍵的下標:
VK_LSHIFT,VK_RSHIFT,VK_LCONTROL,VK_RCONTROL;VW_LMENU,VW_RMENU僅當應用程式調用GetKeyboardState;SetkeyboardState,GetAsycKeystate,GetKeyState和MapVirtualKey函式時,才可用這些區分左右鍵的常數。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:winuser.h;庫檔案: USer32.lib。

相關詞條

相關搜尋

熱門詞條

聯絡我們