GetKeyState

GetKeyState是指定虛擬鍵的狀態的一個函式。

基本介紹

  • 中文名:GetKeyState
  • 外文名:GetKeyState
  • 函式功能:指定虛擬鍵的狀態
  • 函式原型:SHORT GetKeyState
  • 例子:_SHIFT) > 0 沒按下
函式功能,函式原型,函式,返回值,

函式功能

該函式檢取指定虛擬鍵的狀態。該狀態指定此鍵是UP狀態,DOWN狀態,還是被觸發的(開關每次按下此鍵時進行切換)。

函式原型

SHORT GetKeyState(int nVirtKey);

函式

nVrtKey:定義一虛擬鍵。若要求的虛擬鍵是字母或數字(A~Z,a~z或0~9),nVirtKey必須被置為相應字元ASCII碼值,對於其他的鍵,nVirtKey必須是一虛擬鍵碼。若使用非英語鍵盤布局,則取值在ASCIIa~z和0~9的虛擬鍵被用於定義絕大多數的字元鍵。例如,對於德語鍵盤格式,值為ASCII0(OX4F)的虛擬鍵指的是"0"鍵,而VK_OEM_1指"帶變音的0鍵"

返回值

例子:
::GetKeyState(VK_SHIFT) > 0 沒按下
::GetKeyState(VK_SHIFT) < 0被按下
返回值給出了給定虛擬鍵的狀態,狀態如下:
若高序位為1,則鍵處於DOWN狀態,否則為UP狀態。
若低序位為1,則鍵被觸發。例如CAPS LOCK鍵,被找開時將被觸發。若低序位置為0,則鍵被關閉,且不被觸發。觸發鍵在鍵盤上的指示燈,當鍵被觸發時即亮,鍵不被觸發時即滅。
備註:當給定執行緒從它的訊息佇列中讀鍵訊息時,該函式返回的鍵狀態發生改變。該狀態並不反映與硬體相關的中斷級的狀態。使用GetAsyncKeyState可獲取這一信息。
應用程式可以使用GetKeyState來回響一個由鍵盤輸入產生的訊息。此時該程式獲得的是在輸入訊息生成時該鍵位的狀態。
欲檢取所有虛擬鍵狀態信息,可以使用GetKeyboardState函式。
應用程式可以使用虛擬鍵碼常數VK_SHIFT,VK_CONTROL和VK_MENU作為nVirtKey參數的值。它給出shift,ctrl或alt鍵的值而不區分左右鍵,應用程式也可以使用如下的虛擬鍵碼常數作nVirtKey的值來區分前述鍵的左鍵、右鍵的情形。
VK_LSHIFT,VK_RSHIFT;VK_LCONTROL,VK_RCONTROL;VK_LMENU,VK_RMENU。
僅當應用程式調用GetKeyboardSlate,SetKeyboardStateGetAsyncKeystate;GetKeyState和MapVirtualKey函式時,才可用這些區分左右鍵的常數。
Windows CE:GetKeyState函式僅能用於檢查如下虛擬鍵的DOWN狀態。
VK_LSHIFT,VKRSHIFT,VK_LCONTROL;VK_RCONTROL;VK_LMENU,VK_RMENU。
GetKeyState函式只能用於檢查VK_CAPITAL虛擬鍵的觸髮狀態。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.I及以上版本;頭檔案:
winuser.h;庫檔案:user32.lib。
GetKeyState Function
Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
GetKeyState returns the current status of one of the keys on the keyboard. This status contains two pieces of
information: the key's toggle state and the key's pressed state. The information is put into the return value. The
toggle state is analogous to the toggle nature of the Caps Lock, Num Lock, and Scroll Lock keys, but Windows
records toggle information about every key. The toggle information is stored in bit &H80 of the return value.
The pressed state is true if the key is currently being depressed. The pressed information is stored in bit &H01
of the return value. See the example for more information on how to use the return value.
nVirtKey
The virtual key code of the key to read the status of.
Example:
' Read the status of the Enter key
x = GetKeyState(&H0D) ' Enter's virtual key code is &H0D
If (x And &H80) = &H80 Then ' check to see if it is toggled
Debug.Print "Enter is currently toggled."
End If
If (x And &H01) = &H01 Then ' check to see if it is depressed
Debug.Print "Enter is currently depressed."
End If

相關詞條

熱門詞條

聯絡我們