打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB - 设定开关键[CapsLock - ScrollLock - NumLock]

方法:借助API来完成
思路:先用 "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键

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
delphi编程开启和关闭小键盘
How To Toggle the NUM LOCK, CAPS LOCK, and SCROLL LOCK Keys
delphi模拟按键实现粘贴快捷键ctrl V
鼠标、键盘模拟技术
Python驱动级按键
vb数字操作机器人软件代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服