VB - 设定开关键CapsLock - ScrollLock - NumLock win10开机numlock不亮
思路:先用 "GetKeyState" 判断开关键的状态,并转换为布尔值,如果打开,则位0为1,此时布尔值为True,然后判断该布尔值与设定布尔值是否相同,如果不同,使用 "MapVirtualKey" 返回开关键码对应的扫描码,最后用到两次 "keybd_event" ,第一次模拟开关键按下,第二次模拟开关键放开。
'以下代码在模块:
Option Explicit
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, _
ByVal wMapType As Long) As Long
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
Public Sub SetNumLock(ByVal bLock As Boolean)
Dim Check As Boolean, ScanCode As Long
Check = CBool(GetKeyState(vbKeyNumlock))
If Check <> bLock Then
ScanCode = MapVirtualKey(vbKeyNumlock, 0)
Call keybd_event(vbKeyNumlock, ScanCode, 0, 0)
Call keybd_event(vbKeyNumlock, ScanCode, KEYEVENTF_KEYUP, 0)
End If
End Sub
Public Sub SetScrollLock(ByVal bLock As Boolean)
Dim Check As Boolean, ScanCode As Long
Check = CBool(GetKeyState(vbKeyScrollLock))
If Check <> bLock Then
ScanCode = MapVirtualKey(vbKeyScrollLock, 0)
Call keybd_event(vbKeyScrollLock, ScanCode, 0, 0)
Call keybd_event(vbKeyScrollLock, ScanCode, KEYEVENTF_KEYUP, 0)
End If
End Sub
Public Sub SetCapsLock(ByVal bLock As Boolean)
Dim Check As Boolean, ScanCode As Long
Check = CBool(GetKeyState(vbKeyCapital))
If Check <> bLock Then
ScanCode = MapVirtualKey(vbKeyCapital, 0)
Call keybd_event(vbKeyCapital, ScanCode, 0, 0)
Call keybd_event(vbKeyCapital, ScanCode, KEYEVENTF_KEYUP, 0)
End If
End Sub
'调用示例(这里只例举设定NumLock键,其他两个键调用方法相同):
Call SetNumLock(False) '关闭NumLock键
Call SetNumLock(True) '打开NumLock键
更多阅读
可移动磁盘打不开怎么修复 可移动磁盘h打不开
可移动磁盘打不开怎么修复——简介相信可移动磁盘(比如U盘、移动硬盘及手机SD卡等设备)一直都是大家使用最广泛的设备,当这些设备及其中的存储功能无法正常使用时,我们该如何修复呢?特别是针对磁盘无法打开的情况,小编特提供以下修复方法
怎样解决“添加或删除程序”打不开问题 精 xp添加删除程序打不开
控制面板中的“添加或删除程序”在系统占据着重要的位置,日常的删除卸载软件都要用到它,因为某些原因,你突然发现你无法打开或者看不到“添加或删除程序”了,你是不是很着急,如果你遇到了这类问题,你可以试着照本经验的方法尝试来解决。
"电脑开机要按f1解决方法 开机f1解决方法
电脑开机要按F1这样的问题在台式电脑上面很常见到的,这汤的问题很让人烦的,要死想彻底的解决开机要按f1的问题其实也很简单,只要进入bios中把软驱关掉就可以了。下面详细的介绍下怎么操作的。&quot;电脑开机要按f1解决方法——工
耳麦不能说话怎么办 精 win10耳麦不能说话
刚想和别人开视频会议,发现耳麦没反应了,说不上话……耳麦不能说话怎么办 精——步骤/方法耳麦不能说话怎么办 精 1、首先检查下是不是耳麦插错了耳麦不能说话怎么办 精 2、没有插错的,检查下耳麦,看是不是损坏了耳麦不能说话怎么办
打不开qq农场怎么办 qq农场网页打不开
打不开qq农场怎么办——简介点击上传x打不开qq农场怎么办——工具/原料IE8adobe flash player打不开qq农场怎么办——方法/步骤