Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long Const VK_NUMLOCK = &H90 Const VK_SCROLL = &H91 Const VK_CAPITAL = &H14 Dim zt, ks, t Sub 开始() Dim keys(0 To 255) As Byte t = Timer ks = 1 zt = 0 For x = 1 To 250 DoEvents GetKeyboardState keys(0) If keys(39) > 127 Then zt = 0 If keys(37) > 127 Then zt = 1 If keys(40) > 127 Then ks = 0 If zt = 0 Then Cells(1, 2) = Timer - t If x = 250 Then x = 0 If ks = 0 Then Exit Sub Next x End Sub
Sub 暂停() If zt <> 0 Then zt = 0 t = Timer - Cells(1, 2) Else zt = 1 End If End Sub
VB声明 Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long 说明 取得键盘上每个虚拟键当前的状态 返回值 Long,非零表示成功,零表示失败。会设置GetLastError 参数表 参数 类型及说明 pbKeyState Long,总共含256个条目的字节数组中的第一个项目。每个字节都会附带载入与虚拟键对应的状态。如开关键打开,则位0设为1(开关键包括CapsLock, NumLock, ScrollLock);如某个键当时按下,则位7为1;如已经抬起,则为0
VB声明 Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long 说明 取得键盘上每个虚拟键当前的状态 返回值 Long,非零表示成功,零表示失败。会设置GetLastError 参数表 参数 类型及说明 pbKeyState Long,总共含256个条目的字节数组中的第一个项目。每个字节都会附带载入与虚拟键对应的状态。如开关键打开,则位0设为1(开关键包括CapsLock, NumLock, ScrollLock);如某个键当时按下,则位7为1;如已经抬起,则为0
If keys(39) > 127 Then zt = 0 'Keys(39)>127代表键盘上右方键按下去了。 If keys(37) > 127 Then zt = 1 'Keys(37)>127代表键盘上左方键按下去了。 If keys(40) > 127 Then ks = 0 'Keys(40)>127代表键盘向下方键按下去了。