我正在寻找一种方法来禁用 Windows 中的 CAPS LOCK 功能。不幸的是,所有解决方案都是将其重新映射到 NOTHING 或其他键。我是一名游戏玩家,想使用 CAPS LOCK 键进行游戏内功能,但我不希望 Windows 在使用大写锁定后将所有内容大写(例如,使用大写锁定更改使用 WASD 飞行的空间 FPS 中的目标)。
例子:
CAPS LOCK 映射到我游戏中的“更改目标”
我按 CAPS Lock,Windows 从现在开始将大写我输入的所有文本
我射击了我的目标,但我需要帮助,所以我现在进入聊天室 我想输入但所有字母都大写
因此,为了避免大写文本,我再次按 CAPS LOCK 键,但随后我的目标发生了变化,但是现在我输入的是普通文本。
那么有什么技巧可以禁用 Windows 中的大写功能而不必将 CAPS LOCK 键重新映射到其他东西?
简而言之:我希望它在不启用大写文本的情况下被游戏等检测到。
有一种方法可以达到您想要的结果,但它并不理想。您可以重新映射实际的键,这样大写锁定状态就不会影响它们。换句话说,忽略capslock修饰符。这是可行的(事实上,我正在使用capslock ON修改后的键盘编写此内容 - 但有一个小故障 - 如果有效地也禁用使用 生成大写字母shift。虽然有可能为此进行单独的映射,但我尝试过的任何程序都无法识别它(布局映射器测试器本身除外)。因此,每当我需要输入大写字母时,我都必须切换到普通键盘布局(通过ctl+alt+digit快捷方式)-不是超级方便,但它不会改变caps状态!
我使用Microsoft 键盘布局 Creator 1.4来构建布局。
关于键盘事件实际如何处理的一些背景信息(添加到您与 soandos 的讨论中:(简化):
当按下一个键时,它会产生一个扫描码。此扫描码由 Windows(键盘驱动程序)处理并翻译成virtual key。这个virtual key(然后发送到应用程序。Forcapslock VC_CAPITAL正在发送(并由您的游戏解释)。虚拟代码还不是字符键。收到 VK_CODE(并且可能对其做出某种反应)后,应用程序将向操作系统询问实际的字符代码。现在做什么代码返回到应用程序取决于操作系统跟踪的几个因素 - 大写锁定状态就是其中之一。这就是大写锁定跨应用程序工作的原因 - 因为它由操作系统而不是(仅)应用程序跟踪。更多信息请参见此处
| 归档时间: |
|
| 查看次数: |
17587 次 |
| 最近记录: |