[英]Override Caps Lock with Ctrl using C#
我正在使用C#和Visual Studio 2008编写(我知道的另一个 )键盘重映射器。
我按照本指南学习了如何抢购低级按键。 这适用于覆盖我的键盘上的普通字母字符,但我似乎需要更多一点来使Caps Lock像Ctrl一样。
我的理解(可能不正确)是Caps Lock和Ctrl处理完全不同,因为Caps Lock是一个切换键,而Ctrl只是一个“正常”键。
所以我在这里想要了解的是如何使Caps Lock在最低级别上表现得像一个Ctrl键,以及如何使普通的Ctrl键像Caps Lock键一样。
谢谢
维持一个bool,代表预期的大写锁定状态。 当大写锁定键被命中时,将系统的大写锁定值设置回bool的值。 当按下Ctrl时 ,切换大写锁定的预期状态并将系统的上限锁定值设置为bool的值。
使用以下命令设置初始预期状态:
[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和Caps Lock时添加 。 大写锁定是指lParam是&H14
。 当lParam为&H11
时,Ctrl为。
获取/设置系统的Caps Lock值:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.