题
我在写 (完后还有, ,我知道)使用C#和Visual Studio 2008的键盘删除器。
我跟着 本指南 要学习如何张开低级钥匙按压。这可以很好地适用于我的键盘上的正常字母字符,但我似乎需要更多的时间来制作 大写锁定 表现得像 Ctrl.
我的理解(可能不正确)是 大写锁定 和 Ctrl 自从彼此完全不同,因为 大写锁定 是一个切换的钥匙,而 Ctrl 只是一个“正常”。
所以我在这里想了解的是如何制作 大写锁定 表现得像 Ctrl 最低水平的关键以及如何使正常 Ctrl 钥匙就像一个 大写锁定 钥匙。
谢谢
解决方案
保持一个代表预期盖锁状态的布尔。盖上锁定密钥时,设置系统的 大写锁定 价值回到布尔的价值。什么时候 Ctrl 被击中,切换盖子锁定的预期状态,并将系统的盖帽锁定值设置为布尔的值。
使用以下来设置初始预期状态:
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true, CallingConvention=CallingConvention.Winapi)]
public static extern short GetKeyState(int keyCode);
bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
在hookcallback(您提供的链接)中添加特殊逻辑 Ctrl 和 大写锁定 受到打击。上限锁是LPARAM是 &H14
. 。 ctrl是lparam是 &H11
.
获取/设置系统 大写锁定 价值:
不隶属于 StackOverflow