API関数のGetKeyStateを使えばVBのKeyDownイベントやKeyPressイベントで判断のできないキー(Num Lockとか)も判断できるようになります。
Private SubForm_Load()
Timer1.Interval = 100
End Sub
Private SubTimer1_Timer()
IfGetKeyState(VK_CONTROL) < 0Then
Debug.Print"VK_CONTROL ON"'コントロールキーが同時に押下されている
End If
IfGetKeyState(VK_SHIFT) < 0Then
Debug.Print"VK_SHIFT ON"'シフトキーが同時に押下されている
End If
If(GetKeyState(VK_CAPITAL)And1) <> 0Then
Debug.Print"VK_CAPITAL ON"'Caps LockキーON
Else
Debug.Print"VK_CAPITAL OFF"'Caps LockキーOFF
End If
End Sub
'-------------------------------------------------------
'
'-------------------------------------------------------
Public Declare FunctionGetKeyStateLib"user32" (ByValnVirtKeyAs Long)As Integer
Public ConstVK_LBUTTON = &H1'マウス左ボタン
Public ConstVK_RBUTTON = &H2'マウス右ボタン
Public ConstVK_CANCEL = &H3'[Cancel]
Public ConstVK_MBUTTON = &H4'マウスの中央ボタン
Public ConstVK_BACK = &H8'[Back Space]
Public ConstVK_TAB = &H9'[TAB]
Public ConstVK_CLEAR = &HC'[Clear]
Public ConstVK_RETURN = &HD'[Enter]
Public ConstVK_SHIFT = &H10'[Shift]
Public ConstVK_RSHIFT = &HA1'[右Shift]
Public ConstVK_CONTROL = &H11'[Control]
Public ConstVK_RCONTROL = &HA3'[右Control]
Public ConstVK_MENU = &H12'[Menu]
Public ConstVK_RMENU = &HA5'[右Menu]
Public ConstVK_PAUSE = &H13'[Pause]
Public ConstVK_CAPITAL = &H14'[Caps Lock]
Public ConstVK_ESCAPE = &H1B'[Esc]
Public ConstVK_SPACE = &H20'[Space]
Public ConstVK_PRIOR = &H21'[Page Up]
Public ConstVK_NEXT = &H22'[Page Down]
Public ConstVK_END = &H23'[End]
Public ConstVK_HOME = &H24'[Home]
Public ConstVK_LEFT = &H25'[←]
Public ConstVK_UP = &H26'[↑]
Public ConstVK_RIGHT = &H27'[→]
Public ConstVK_DOWN = &H28'[↓]
Public ConstVK_SELECT = &H29'[Select]
Public ConstVK_PRINT = &H2A'[Print Screen]
Public ConstVK_EXECUTE = &H2B'[Execute]
Public ConstVK_SNAPSHOT = &H2C'[Snap Shot]
Public ConstVK_INSERT = &H2D'[Insert]
Public ConstVK_DELETE = &H2E'[Delete]
Public ConstVK_HELP = &H2F'[Help]
Public ConstVK_NUMPAD0 = &H60'テンキーの[0]
Public ConstVK_NUMPAD1 = &H61'テンキーの[1]
Public ConstVK_NUMPAD2 = &H62'テンキーの[2]
Public ConstVK_NUMPAD3 = &H63'テンキーの[3]
Public ConstVK_NUMPAD4 = &H64'テンキーの[4]
Public ConstVK_NUMPAD5 = &H65'テンキーの[5]
Public ConstVK_NUMPAD6 = &H66'テンキーの[6]
Public ConstVK_NUMPAD7 = &H67'テンキーの[7]
Public ConstVK_NUMPAD8 = &H68'テンキーの[8]
Public ConstVK_NUMPAD9 = &H69'テンキーの[9]
Public ConstVK_MULTIPLY = &H6A'テンキーの[*]
Public ConstVK_ADD = &H6B'テンキーの[+]
Public ConstVK_SEPARATOR = &H6C'テンキーの[Enter]
Public ConstVK_SUBTRACT = &H6D'テンキーの[-]
Public ConstVK_DECIMAL = &H6E'テンキーの[.]
Public ConstVK_DIVIDE = &H6F'テンキーの[/]
Public ConstVK_F1 = &H70'[F1]
Public ConstVK_F2 = &H71'[F2]
Public ConstVK_F3 = &H72'[F3]
Public ConstVK_F4 = &H73'[F4]
Public ConstVK_F5 = &H74'[F5]
Public ConstVK_F6 = &H75'[F6]
Public ConstVK_F7 = &H76'[F7]
Public ConstVK_F8 = &H77'[F8]
Public ConstVK_F9 = &H78'[F9]
Public ConstVK_F10 = &H79'[F10]
Public ConstVK_F11 = &H7A'[F11]
Public ConstVK_F12 = &H7B'[F12]
Public ConstVK_F13 = &H7C'[F13]
Public ConstVK_F14 = &H7D'[F14]
Public ConstVK_F15 = &H7E'[F15]
Public ConstVK_F16 = &H7F'[F16]
Public ConstVK_F17 = &H80'[F17]
Public ConstVK_F18 = &H81'[F18]
Public ConstVK_F19 = &H82'[F19]
Public ConstVK_F20 = &H83'[F20]
Public ConstVK_F21 = &H84'[F21]
Public ConstVK_F22 = &H85'[F22]
Public ConstVK_F23 = &H86'[F23]
Public ConstVK_F24 = &H87'[F24]
Public ConstVK_NUMLOCK = &H90'[Num Lock]
DownLoad vbtips094.lzh 3KB (VB6.0)