Я искал прошлые вопросы, но я не нашел решения для переключения LAlt с помощью LCtrl (или CapsLock с LCtrl) при сохранении полностью AltGr, что соответствует Ctrl+Alt (или, может быть, LCtrl+RAlt?).

Это ближайший вопрос, но я не могу использовать реестр, у меня ограниченные привилегии. Переключать Ctrl и Alt с помощью AutoHotKey, не мешая переключателю Alt-Tab?

Также связано:https://code.google.com/p/uawks/issues/detail?id=2

Я использую любой из этих простых скриптов:

LAlt::LCtrl
LCtrl::LAlt

Второй:

LCtrl::CapsLock
CapsLock::LCtrl

Всякий раз, когда я нажимаю AltGr с помощью любой другой клавиши, что-то застревает, и мне приходится произвольно нажимать Alt, Ctrl, пока я не смогу снова написать. Если я использую второй скрипт, CapsLock активируется!

Моя клавиатура швейцарская, и у меня есть куча клавиш с третьим символом, поэтому мне часто требуется AltGr, переназначение каждой из них не будет чистым решением.

Обновить

Я только что узнал, что проблемы с AltGr полностью решены путем добавления следующей строки в конце двух ранее опубликованных скриптов, но я не понимаю, почему это происходит.

<^>!::RAlt

Почему переназначение AltGr как RAlt ALONE все еще производит эффект обычного AltGr?

1 ответ1

0

1) Несмотря на простоту, логике этого поста трудно следовать для тех из нас, у кого без клавиатуры AltGr просто пройти тестирование. Во всяком случае, я говорю за себя ... для понимания, это может помочь уточнить, о каком двухстрочном сценарии вы говорите, затем список клавиш, которые вы нажимаете (и в каком порядке), а затем список того, что результаты вы получаете. Затем перечислите следующий сценарий, ключи и результаты. Или, может быть, другим это не нужно, но мне было немного трудно следить, хотя я считаю, что у вас есть вся важная информация в списке.

2) Вы смотрели на переназначение горячих клавиш в файлах справки? Я заметил две вещи, с которыми вы можете поиграть. Во-первых, использование * в качестве модификатора. Во-вторых, это использование «Вверх» для запуска при движении вверх, чтобы отправить другой ход вверх (т. Е. Отправить ход вверх для другого модификатора). Посмотрите на переопределение LWin, указанное в разделе «Горячие клавиши» в файле справки:

*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}

3) Иногда вещи застревают, и когда это происходит, иногда можно обойти это, отправив команды «Вверх», даже если клавиша уже нажата. Технически это может не понадобиться, но иногда это работает (а иногда нет).

4) Может (или не может) просматривать список истории ключей через меню «Вид». Часто вы можете узнать, почему что-то застревает или почему происходит сбой, глядя на то, как обрабатываются ключи заказа (т. Е. В порядке, в котором они перечислены), а также на то, игнорируются ли они из-за различных перечисленных причин.

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

Если бы у меня была одна из этих клавиатур для тестирования, я, вероятно, взял бы один из двухстрочных примеров, которые вы перечислили, и превратил бы его в переназначение клавиш с четырьмя строками, как в примере с переназначением LWin, а затем посмотрите, что происходит в ключевая история. Я мог бы также добавить оператор pause, чтобы поймать его в действии и иметь возможность просматривать историю нажатий клавиш вплоть до того момента, когда была выполнена пауза, что исключало бы в журнале показ любых выпущенных клавиш-модификаторов.

Я понятия не имею, сработает ли это, но вот краткое описание того, с чем вы можете начать в целях отладки.

*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
     Send {LAlt Down}
     Pause   ; once the script is paused you can go look at Key History
 Return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .