Как я могу переназначить индикатор NumLock, чтобы он показывал, когда модификатор Kana активен?

419
Ryan Hilbert

Я пришел к выводу, что NumLockключ бесполезен. Насколько я могу судить, его единственная причина существования - вызывать у меня несколько секунд разочарования, когда я случайно выключаю его.

В моем крестовом походе против этого вредоносного ключа я автоматически включил его при запуске и использовал KbdEdit, чтобы переназначить его на Kana ключ-модификатор, который, по-видимому, является неясным модификатором, похожим на Ctrlили Shift, за исключением того, что его можно включать / выключать подобно CapsLockили NumLock. Это замечательно и позволило мне добавить некоторые новые полезные функции к моей клавиатуре, но теперь NumLockиндикатор горит постоянно, избыточно показывая мой постоянный NumLockстатус.

Итак, в качестве последнего шага в этой битве за практичность, я хотел бы переназначить этот свет, чтобы показать, Kanaактивен ли модификатор в настоящее время. Как я могу сделать это?

В порядке значимости, идеальное решение:

  1. Работает последовательно
  2. Использует минимальное внешнее программное обеспечение
  3. Работает на нескольких версиях Windows
3

2 ответа на вопрос

3
FrozenFlower

Благодаря ссылке из ответа выше и тому факту, что я пользователь AutoHotKey. Я мог бы предоставить чистый скрипт AutoHotkey для требуемой функциональности.

То, что делает ключ Кана, - это изменение Ввода с Кана на Романджи и наоборот. Я проверил это и получил такое поведение.

Благодаря уже сделанной реализации светодиодов от: https://autohotkey.com/board/topic/9587-keyboard-led-control-capslocknumlockscrolllock-lights/ это довольно просто. (Спасибо, Росс Прессер, что вы уделили нам драгоценное время, чтобы связать его). Этот код считается само собой разумеющимся и уже импортированным ... В AutoHotKey он будет использоваться так:

 Kana_Romanji := false ; Now making a hotkey for Kana Modifier Key (0x15 / VK_Kana, in AHK = vk15) vk15::  if Kana_Romanji ; swap the off and switch to swap the LED state for it. Currently: Romanji when it is on, Kana when it is off. KeyboardLED(2, "off")  else KeyboardLED(2, "switch")  Kana_Romanji := not Kana_Romanji return 

Чистый скрипт AutoHotKey для той же функциональности:

 Kana_Romanji := false ; Now making a hotkey for NumLock NumLock:: ; Change this to "VK15::" if your layout is using the key and delete the send or comment this and uncomment the below one. Send ; Actual Kana_Modifier key as given from MSDN sleep 10 ; Needs some delay because without delay Windows picks up the actual NumLock state and turns the light off. At least it did when I tried without it. if Kana_Romanji ; swap the off and switch to swap the LED state for it. Currently: Romanji when it is on, Kana when it is off. KeyboardLED(2, "off")  else KeyboardLED(2, "switch")  Kana_Romanji := not Kana_Romanji return 

Готовый скрипт, который должен работать для вас: https://pastebin.com/c3dcD8Gs (прочитайте / проверьте его, сохраните как .ahk и откройте его с помощью AutoHotKey.)

PS: Я также ненавистник ключей NumLock. За исключением того, что я всегда держу это и никогда не использую это, чтобы напечатать числа. Он протестирован в устаревшей, известной как ванильная версия AutoHotKey (версия 1.0.48.05), но он должен работать и на более новых.

Я надеюсь, что это то, что вам нужно. Удачи.

Мне пришлось изменить отображение `vk15 ::` на `$ vk15 :: send `, чтобы остановить его от подавления нормальной функции клавиши, но также кажется, что функция KeyboardLED () просто не имеет никакого эффекта для меня ; Я немного поигрался со сценарием (используя версию 1.0.48.05), чтобы убедиться, что он действительно вызывается. В любом случае, я действительно ценю эти усилия и обязательно еще раз посмотрю на это позже, чтобы посмотреть, смогу ли я выяснить, что происходит не так! Ryan Hilbert 6 лет назад 0
1
Ross Presser

Я думаю, вам придется полагаться на другое программное обеспечение. Например, AutoHotkey может управлять освещением отдельно от реальных функций . Однако, поскольку модификатор Kana мало известен в мире AutoHotkey, вам придется написать свой собственный скрипт, чтобы свет отражал этот статус.

Я знаю, что этого недостаточно для ответа здесь, но для комментария это показалось слишком длинным. Ross Presser 6 лет назад 0
Это потенциально хорошая отправная точка. Конечно, не стесняйтесь расширить это в полноценный ответ! Ryan Hilbert 6 лет назад 0