簡體   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