VB - 设定开关键CapsLock - ScrollLock - NumLock win10开机numlock不亮

方法:借助API来完成

思路:先用 "GetKeyState" 判断开关键的状态,并转换为布尔值,如果打开,则位0为1,此时布尔值为True,然后判断该布尔值与设定布尔值是否相同,如果不同,使用 "MapVirtualKey" 返回开关键码对应的扫描码,最后用到两次 "keybd_event" ,第一次模拟开关键按下,第二次模拟开关键放开。

'以下代码在模块:

Option Explicit
VB - 设定开关键[CapsLock - ScrollLock - NumLock] win10开机numlock不亮

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键

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/137132.html

更多阅读

可移动磁盘打不开怎么修复 可移动磁盘h打不开

可移动磁盘打不开怎么修复——简介相信可移动磁盘(比如U盘、移动硬盘及手机SD卡等设备)一直都是大家使用最广泛的设备,当这些设备及其中的存储功能无法正常使用时,我们该如何修复呢?特别是针对磁盘无法打开的情况,小编特提供以下修复方法

"电脑开机要按f1解决方法 开机f1解决方法

电脑开机要按F1这样的问题在台式电脑上面很常见到的,这汤的问题很让人烦的,要死想彻底的解决开机要按f1的问题其实也很简单,只要进入bios中把软驱关掉就可以了。下面详细的介绍下怎么操作的。&amp;quot;电脑开机要按f1解决方法——工

耳麦不能说话怎么办 精 win10耳麦不能说话

刚想和别人开视频会议,发现耳麦没反应了,说不上话……耳麦不能说话怎么办 精——步骤/方法耳麦不能说话怎么办 精 1、首先检查下是不是耳麦插错了耳麦不能说话怎么办 精 2、没有插错的,检查下耳麦,看是不是损坏了耳麦不能说话怎么办

声明:《VB - 设定开关键CapsLock - ScrollLock - NumLock win10开机numlock不亮》为网友眀媚哋亾分享!如侵犯到您的合法权益请联系我们删除