Professional Documents
Culture Documents
Return Value
SHORT
If the function succeeds, the return value specifies whether the key was pressed since
the last call to GetAsyncKeyState, and whether the key is currently up or down. If the
most significant bit is set, the key is down, and if the least significant bit is set, the key
was pressed after the previous call to GetAsyncKeyState. However, you should not
rely on this last behavior; for more information, see the Remarks.
Remarks
The GetAsyncKeyState function works with mouse buttons. However, it checks on the
state of the physical mouse buttons, not on the logical mouse buttons that the physical
buttons are mapped to. For example, the call GetAsyncKeyState(VK_LBUTTON)
always returns the state of the left physical mouse button, regardless of whether it is
mapped to the left or right logical mouse button. You can determine the system's
current mapping of physical mouse buttons to logical mouse buttons by calling
GetSystemMetrics(SM_SWAPBUTTON) .
Although the least significant bit of the return value indicates whether the key has been
pressed since the last query, due to the pre-emptive multitasking nature of Windows,
another application can call GetAsyncKeyState and receive the "recently pressed" bit
instead of your application. The behavior of the least significant bit of the return value is
retained strictly for compatibility with 16-bit Windows applications (which are non-
preemptive) and should not be relied upon.
You can use the virtual-key code constants VK_SHIFT, VK_CONTROL, and VK_MENU
as values for the vKey parameter. This gives the state of the SHIFT, CTRL, or ALT keys
without distinguishing between left and right.
You can use the following virtual-key code constants as values for vKey to distinguish
between the left and right instances of those keys.
Code Meaning
These left- and right-distinguishing constants are only available when you call the
GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, and
MapVirtualKey functions.
Requirements
User32.lib
Library
User32.dll
DLL
See Also
Reference
GetKeyboardState
GetKeyState
Click to customize your PDFs pdfcrowd.com
MapVirtualKey
SetKeyboardState
Conceptual
Keyboard Input
Other Resources
GetSystemMetrics
C# syntax
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern short GetAsyncKeyState(int vkey);
History
vb.net syntax
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> Publ
ic Shared Function GetAsyncKeyState(ByVal vkey As Integer) As Short
End Function
History
4/25/2009
dmex
Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As I
nt32) As UShort
Usage:
Public Shared ReadOnly Property KeyStatus(ByVal Key As Keys) As Boolean
Get
If Key = Keys.LButton AndAlso My.Computer.Mouse.ButtonsSwapped The
n
Key = Keys.RButton
ElseIf Key = Keys.RButton AndAlso My.Computer.Mouse.ButtonsSwapped
Then
Key = Keys.LButton
End If
Return API.Devices.GetAsyncKeyState(Key) And &H8000US
End Get
End Property
History
Click to customize your PDFs pdfcrowd.com
9/27/2008
Đonny
© 2010 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement |
Feedback