我在写 (完后还有, ,我知道)使用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.

获取/设置系统 大写锁定 价值:

http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/fb8308e5-7620-43cc-43cc-8ad8-be67d94708fa/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top