Клавиша переназначения Autohotkey с функциональностью Win + L

У меня есть клавиатура с левой клавишей Windows и правой клавишей контекстного меню. Я бы предпочел, чтобы правая клавиша контекстного меню работала как другой ключ Windows, поэтому я использую простой скрипт AutoHotKey для «переназначения» клавиши следующим образом:

AppsKey::LWin

Это отлично работает для каждой комбинации WinKey + (XYZ), такой как Win + I, Win + X и множества других горячих клавиш, которые я сопоставил с AutoHotKey.

ОДНАКО! он не работает с Win + L для блокировки консоли, что является одной из основных причин, по которой я хочу переназначить этот ключ. У кого-нибудь есть идеи, почему?


(Примечание: если это кому-то поможет, я вместо этого использовал клавишу Scroll Lock в качестве клавиши «консоли блокировки» в этом скрипте:

scrolllock:: DllCall("LockWorkStation") 

но хотелось бы все же узнать, почему не работает функционал Win + L)


person sǝɯɐſ    schedule 11.10.2013    source источник


Ответы (3)


Я обнаружил, что Windows Key L рассматривается как особенная вещь. Я не думаю, что это отображается в инструменте истории клавиатуры AutoHotkey. Я смутно помню, как использовал его в прошлом для чего-то другого, и когда, возможно, вышла Windows 7, это стало невозможно. В принципе, думаю, это функция безопасности.

person Programmer Paul    schedule 11.10.2013
comment
Win + L всегда был ярлыком для блокировки экрана - person phuclv; 07.07.2018

В моем случае единственная причина, по которой я хочу переназначить клавишу меню (AppsKey), - это возможность заблокировать мой экран (поскольку эта кнопка находится рядом с клавишей 'L', а единственная клавиша Windows на моей клавиатуре естественного стиля находится далеко прочь).

Если вас не волнует, что клавиша Menu работает как клавиша Windows для чего-либо еще, вы можете использовать это сопоставление:

AppsKey & L:: DllCall("LockWorkStation")

Конечно, вы должны иметь возможность добавлять другие важные для вас комбинации клавиш. Просто кажется, что вы должны явно указать этот ключ.

person Brian    schedule 16.10.2013
comment
да, именно по этой причине я хотел переназначить ключ ... хороший вызов, чтобы вы могли переназначить комбинацию, но мне все еще интересно, почему он не работает по умолчанию, когда AppsKey переназначен на ключ Windows. - person sǝɯɐſ; 16.10.2013

Обновление: кажется, легко запутаться в состоянии клавиш. Мой компьютер просто заблокирован нажатием клавиши L. Так что не рекомендую.

Размещение ~ перед выражением горячей клавиши блокировки, похоже, позволяет AppsKey действовать как LWin, а также блокировать компьютер.

AppsKey:: LWin
~AppsKey & l:: DllCall("LockWorkStation")

Я не уверен, что понимаю это объяснение из документации, но кажется применить к этому.

Если префикс тильды применяется к настраиваемой клавише-модификатору (клавише префикса), которая также используется как собственная горячая клавиша, эта горячая клавиша срабатывает при нажатии клавиши вместо задержки до тех пор, пока клавиша не будет отпущена. Например, указанная выше горячая клавиша ~ RButton срабатывает сразу после нажатия кнопки. До [v1.1.14] (или без префикса тильды) он запускался при отпускании кнопки, но только если комбинация RButton и C не была активирована.

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

person Adam Jones    schedule 14.12.2017
comment
Идеально! Это то, что я искал. ... хотя, когда я набирал это, я вошел в состояние, которое вы описываете, когда простой ввод "L" блокирует компьютер. Я не могу воспроизвести проблему снова. - person Matthew; 14.11.2019