Q:我想在代码中就能确定大写锁定键或者数字键盘键的状态,以便适当地提醒用户这些键已经开启或者应该开启,怎么编写代码?
Q:我想在代码中就能确定大写锁定键或者数字键盘键的状态,以便适当地提醒用户这些键已经开启或者应该开启,怎么编写代码?
A:可以借助于Windows API来取得键盘相应键的状态,代码如下:
‘API声明
Private Declare Function GetKeyState Lib “user32” (ByVal nVirtKey As Long) As Integer
‘定义键编码常量
‘大写锁定键编码常量
Private Const GetCapsLock = 2
‘数字键盘键编码常量
Private Const GetNumLock = 144
‘获取大写锁定键状态
Public Function CapsLock() As Boolean
CapsLock = KeyState(GetCapsLock)
End Function
‘获取数字键盘键状态
Public Function NumLock() As Boolean
NumLock = KeyState(GetNumLock)
End Function
‘获取指定键状态
Private Function KeyState(lKey As Long) As Boolean
KeyState = CBool(GetKeyState(lKey))
End Function
‘测试大写锁定键状态
Sub test()
If CapsLock Then
MsgBox “注意!你现在的大写锁定键是开启的.”, vbExclamation
Else
MsgBox “大写锁定未开启.”
End If
End Sub
运行上述代码中的test过程,如果开启了大写状态,那么会得到下所示的消息:
我们可以在程序中加入上述代码来测试相应键的状态。例如,在要求用户输入密码时,如果开启了大写锁定键,则可以提示用户大写锁定键已开启的信息,以免用户将小写字母输成了大写字母。