Visual Basic Tips


キーボードの状態取得(API)


API関数のGetKeyStateを使えばVBのKeyDownイベントやKeyPressイベントで判断のできないキー(Num Lockとか)も判断できるようになります。

Private Sub Form_Load()
  Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
  
If GetKeyState(VK_CONTROL) < 0 Then
    
Debug.Print "VK_CONTROL ON" 'コントロールキーが同時に押下されている
  
End If

  
If GetKeyState(VK_SHIFT) < 0 Then
    
Debug.Print "VK_SHIFT ON" 'シフトキーが同時に押下されている
  
End If

  
If (GetKeyState(VK_CAPITAL) And 1) <> 0 Then
    
Debug.Print "VK_CAPITAL ON" 'Caps LockキーON
  
Else
    
Debug.Print "VK_CAPITAL OFF" 'Caps LockキーOFF
  
End If
End Sub

'-------------------------------------------------------
'
'-------------------------------------------------------
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Public Const VK_LBUTTON = &H1 'マウス左ボタン
Public Const VK_RBUTTON = &H2 'マウス右ボタン
Public Const VK_CANCEL = &H3 '[Cancel]
Public Const VK_MBUTTON = &H4 'マウスの中央ボタン
Public Const VK_BACK = &H8 '[Back Space]
Public Const VK_TAB = &H9 '[TAB]
Public Const VK_CLEAR = &HC '[Clear]
Public Const VK_RETURN = &HD '[Enter]
Public Const VK_SHIFT = &H10 '[Shift]
Public Const VK_RSHIFT = &HA1 '[右Shift]
Public Const VK_CONTROL = &H11 '[Control]
Public Const VK_RCONTROL = &HA3 '[右Control]
Public Const VK_MENU = &H12 '[Menu]
Public Const VK_RMENU = &HA5 '[右Menu]
Public Const VK_PAUSE = &H13 '[Pause]
Public Const VK_CAPITAL = &H14 '[Caps Lock]
Public Const VK_ESCAPE = &H1B '[Esc]
Public Const VK_SPACE = &H20 '[Space]
Public Const VK_PRIOR = &H21 '[Page Up]
Public Const VK_NEXT = &H22 '[Page Down]
Public Const VK_END = &H23 '[End]
Public Const VK_HOME = &H24 '[Home]
Public Const VK_LEFT = &H25 '[←]
Public Const VK_UP = &H26 '[↑]
Public Const VK_RIGHT = &H27 '[→]
Public Const VK_DOWN = &H28 '[↓]
Public Const VK_SELECT = &H29 '[Select]
Public Const VK_PRINT = &H2A '[Print Screen]
Public Const VK_EXECUTE = &H2B '[Execute]
Public Const VK_SNAPSHOT = &H2C '[Snap Shot]
Public Const VK_INSERT = &H2D '[Insert]
Public Const VK_DELETE = &H2E '[Delete]
Public Const VK_HELP = &H2F '[Help]
Public Const VK_NUMPAD0 = &H60 'テンキーの[0]
Public Const VK_NUMPAD1 = &H61 'テンキーの[1]
Public Const VK_NUMPAD2 = &H62 'テンキーの[2]
Public Const VK_NUMPAD3 = &H63 'テンキーの[3]
Public Const VK_NUMPAD4 = &H64 'テンキーの[4]
Public Const VK_NUMPAD5 = &H65 'テンキーの[5]
Public Const VK_NUMPAD6 = &H66 'テンキーの[6]
Public Const VK_NUMPAD7 = &H67 'テンキーの[7]
Public Const VK_NUMPAD8 = &H68 'テンキーの[8]
Public Const VK_NUMPAD9 = &H69 'テンキーの[9]
Public Const VK_MULTIPLY = &H6A 'テンキーの[*]
Public Const VK_ADD = &H6B 'テンキーの[+]
Public Const VK_SEPARATOR = &H6C 'テンキーの[Enter]
Public Const VK_SUBTRACT = &H6D 'テンキーの[-]
Public Const VK_DECIMAL = &H6E 'テンキーの[.]
Public Const VK_DIVIDE = &H6F 'テンキーの[/]
Public Const VK_F1 = &H70 '[F1]
Public Const VK_F2 = &H71 '[F2]
Public Const VK_F3 = &H72 '[F3]
Public Const VK_F4 = &H73 '[F4]
Public Const VK_F5 = &H74 '[F5]
Public Const VK_F6 = &H75 '[F6]
Public Const VK_F7 = &H76 '[F7]
Public Const VK_F8 = &H77 '[F8]
Public Const VK_F9 = &H78 '[F9]
Public Const VK_F10 = &H79 '[F10]
Public Const VK_F11 = &H7A '[F11]
Public Const VK_F12 = &H7B '[F12]
Public Const VK_F13 = &H7C '[F13]
Public Const VK_F14 = &H7D '[F14]
Public Const VK_F15 = &H7E '[F15]
Public Const VK_F16 = &H7F '[F16]
Public Const VK_F17 = &H80 '[F17]
Public Const VK_F18 = &H81 '[F18]
Public Const VK_F19 = &H82 '[F19]
Public Const VK_F20 = &H83 '[F20]
Public Const VK_F21 = &H84 '[F21]
Public Const VK_F22 = &H85 '[F22]
Public Const VK_F23 = &H86 '[F23]
Public Const VK_F24 = &H87 '[F24]
Public Const VK_NUMLOCK = &H90 '[Num Lock]


DownLoad vbtips094.lzh 3KB (VB6.0)