怎么编写代码获取大写锁定键或数字键盘键的状态?

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过程 , 如果开启了大写状态 , 那么会得到下所示的消息:

怎么编写代码获取大写锁定键或数字键盘键的状态?

文章插图
我们可以在程序中加入上述代码来测试相应键的状态 。例如 , 在要求用户输入密码时 , 如果开启了大写锁定键 , 则可以提示用户大写锁定键已开启的信息 , 以免用户将小写字母输成了大写字母 。

    推荐阅读