January 1, 2005

WinTask - GetAsyncKeyState

'
' GetAsyncKeyState - Get the current status of the specified virtual key.
'
' determines whether a key is up or down at the time the function is called,
' and whether the key was pressed after a previous call to GetAsyncKeyState.
'
' Author: Joe Strazzere
'

VK_CANCEL    = 3
VK_BACK   = 8
VK_TAB   = 9
VK_CLEAR  = 12
VK_RETURN  = 13
VK_SHIFT  = 16
VK_CONTROL  = 17
VK_MENU   = 18
VK_PAUSE  = 19
VK_CAPITAL  = 20
VK_ESCAPE  = 27
VK_SPACE  = 32
VK_PRIOR  = 33
VK_NEXT      = 34
VK_END       = 35
VK_HOME      = 36
VK_LEFT      = 37
VK_UP        = 38
VK_RIGHT     = 39
VK_DOWN      = 40
VK_SELECT    = 41
VK_PRINT     = 42
VK_EXECUTE   = 43
VK_SNAPSHOT  = 44
VK_INSERT  = 45
VK_DELETE    = 46
VK_HELP      = 47
'  VK_0 thru VK_9 are the same as ASCII '0' thru '9' (&H30& - &H39)
VK_0   = Asc("0")
'  VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (&H41& - &H5A)
VK_A   = Asc("A")
VK_NUMPAD0    = 96
VK_NUMPAD1    = 97
VK_NUMPAD2    = 98
VK_NUMPAD3    = 99
VK_NUMPAD4    = 100
VK_NUMPAD5    = 101
VK_NUMPAD6    = 102
VK_NUMPAD7    = 103
VK_NUMPAD8    = 104
VK_NUMPAD9    = 105
VK_MULTIPLY   = 106
VK_ADD        = 107
VK_SEPARATOR  = 108
VK_SUBTRACT   = 109
VK_DECIMAL   = 110
VK_DIVIDE     = 111
VK_F1         = 112
VK_F2         = 113
VK_F3         = 114
VK_F4         = 115
VK_F5         = 116
VK_F6         = 117
VK_F7         = 118
VK_F8         = 119
VK_F9         = 120
VK_F10        = 121
VK_F11        = 122
VK_F12        = 123
VK_F13        = 124
VK_F14        = 125
VK_F15        = 126
VK_F16        = 127
VK_F17        = 128
VK_F18        = 129
VK_F19        = 130
VK_F20        = 131
VK_F21        = 132
VK_F22        = 133
VK_F23        = 134
VK_F24        = 135
VK_NumLock   = 144
VK_Scroll   = 145
'
' VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
' Used only as parameters to GetAsyncKeyState() and GetKeyState().
' No other API or message will distinguish left and right keys in this way.
'
VK_LSHIFT    = 160
VK_RSHIFT    = 161
VK_LCONTROL  = 162
VK_RCONTROL  = 163
VK_LMENU     = 164 
VK_RMENU     = 165
VK_ATTN      = 246
VK_CRSEL     = 247
VK_EXSEL     = 248
VK_EREOF     = 249
VK_PLAY      = 250
VK_ZOOM      = 251
VK_NONAME    = 252
VK_PA1       = 253
VK_OEM_CLEAR = 254
ret=External("user32","GetAsyncKeyState", VK_RSHIFT )
MsgBox(Str$(ret))