前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA代码:设置CapsLock/NumLock/ScrollLock键的状态

VBA代码:设置CapsLock/NumLock/ScrollLock键的状态

作者头像
fanjy
发布2023-12-11 16:04:37
2120
发布2023-12-11 16:04:37
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA

下面是在网上搜集到的一段代码,可以设置CapsLock键、NumLock键、ScrollLock键的状态,这样可以使用其它代码调用这段代码来改变这些键的状态。

代码如下:

代码语言:javascript
复制
Private Declare PtrSafe Sub keybd_event Lib "user32" _
     (ByVal bVk As Byte, _
      ByVal bScan As Byte, _
      ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare PtrSafe Function GetKeyboardState Lib "user32" _
    (pbKeyState As Byte) As Long
'声明常量:
Const VK_NUMLOCK = &H90
Const VK_SCROLL = &H91
Const VK_CAPITAL = &H14
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Public Enum KB_Keys
 NumLock
 CapsLock
 Scroll
End Enum
Public Enum KB_State
 StateOn
 StateOff
 StateFlip
End Enum

Public Sub SetKeyState(LockKey As KB_Keys, KeyState As KB_State)
 '// 存储要操作的键的代码
 Dim Key As Long
 '// 包含所有键的字节数组
 Dim Keys(0 To 255)   As Byte
 
 '// 获取所有键当前状态
 GetKeyboardState Keys(0)
 
 '// 决定去设置哪个键
 Select Case LockKey
   Case NumLock
     Key = VK_NUMLOCK
   Case CapsLock
     Key = VK_CAPITAL
   Case Else
     Key = VK_SCROLL
 End Select
 
 '// 决定新的状态并对该键写入字节
 Select Case KeyState
   Case StateOn
     Keys(Key) = 1
   Case StateOff
     Keys(Key) = 0
   Case Else
     Keys(Key) = IIf(Keys(Key), 0, 1)
 End Select
 
 '// 触发Key Down事件
 keybd_event Key, &H45, KEYEVENTF_EXTENDEDKEY Or 0, Keys(Key)
 '// 以及相应的Key Up事件
 keybd_event Key, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, Keys(Key)
End Sub

下面的代码调用上述代码开启字母大写:

代码语言:javascript
复制
Public Sub Test()
 '开启字母大写
 SetKeyState CapsLock, StateOn
End Sub
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档