繁体   English   中英

使用C#使用Ctrl覆盖Caps Lock

[英]Override Caps Lock with Ctrl using C#

我正在使用C#和Visual Studio 2008编写(我知道的另一个 )键盘重映射器。

我按照本指南学习了如何抢购低级按键。 这适用于覆盖我的键盘上的普通字母字符,但我似乎需要更多一点来使Caps LockCtrl一样。

我的理解(可能不正确)是Caps LockCtrl处理完全不同,因为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中添加特殊逻辑(来自您提供的链接),以便在命中CtrlCaps Lock时添加 大写锁定是指lParam是&H14 当lParam为&H11时,Ctrl为。

获取/设置系统的Caps Lock值:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM