Переопределить крышки блокировки с помощью Ctrl с помощью C#

StackOverflow https://stackoverflow.com/questions/1347640

  •  20-09-2019
  •  | 
  •  

Вопрос

Я пишу (еще один, Я знаю) remapper клавиатуры с использованием C# и Visual Studio 2008.

Я последовал за это руководство Чтобы узнать, как схватить нажатия клавиш низкого уровня. Это отлично работает для переоценки, например, нормальных алфавитных символов на моей клавиатуре, но мне, кажется, нужно немного больше, чтобы сделать Шапки блокировки вести себя как Ctrl.

Насколько я понимаю (что может быть неверным) в том, что Шапки блокировки а также Ctrl обрабатываются совершенно отличными друг от друга, так как Шапки блокировки это переключающий ключ, тогда как Ctrl это просто «нормальный».

Так что я пытаюсь понять здесь, так это как сделать Шапки блокировки вести себя как Ctrl ключ на самом низком уровне, а также как сделать нормальный Ctrl Ключ действуйте как Шапки блокировки ключ.

Спасибо

Это было полезно?

Решение

Поддерживайте Bool, которая представляет ожидаемое состояние блокировки Caps. Когда нажимает ключ блокировки Caps, установите системы Шапки блокировки Значение обратно к значению Bool. Когда Ctrl попал, переключите ожидаемое состояние блокировки Caps и установите значение блокировки системы системы на значение 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 а также Шапки блокировки поражают. Замок крышек - это когда LPARAM &H14. Анкет CTRL - это когда LPARAM &H11.

Чтобы получить/установить систему Шапки блокировки ценность:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top