Я хочу использовать AutoHotKey для отключения Alt + F4, когда они будут нажаты в течение 0,05 секунд друг от друга. В противном случае я бы хотел, чтобы он работал нормально.Отключить Fn + F4 с помощью AutoHotKey с использованием времени
Пояснение:
У моей Lenovo Yoga 2 Pro есть альтернативные функции для функциональных клавиш.
Например: «F3» отображается объем + «F4» отображается «закрыть активное окно»
Есть два режима:
- Старая школа режим: F3 просто действует как F3, и вы должны удерживать клавишу Fn + F3, чтобы активировать громкость +
- Режим новой школы: нажатие F3 активирует громкость +, а Fn + F3 будет делать нормальный F3.
В любом из режимов я рискую закрыть свое активное окно, когда я иду использовать громкость +, потому что они слишком близки, что очень проблематично. Обратите внимание, что AutoHotKey не может обнаружить ключ Fn, поэтому я не могу использовать это для решения моей проблемы.
На изображении ниже показан инструмент истории ключевых слов AutoHotKey. В режиме «Новая школа» я набрал «asdf», а затем нажал «F4», который является «закрытым активным окном». Вы можете увидеть это на самом деле имитирует ALT + F4, и есть очень короткий промежуток между ALT и F4 ...
Я думаю, что я мог бы отключить этот «закрыть активное окно» функцию, имеющими AutoHotKey прерывает комбинацию ALT + F4, когда между двумя клавишами меньше 0,05 секунды. Это можно сделать?
Редактировать: В ответ на код Блаухирна, здесь оригинал, отредактированный для более короткой продолжительности ожидания (от 50 до 10). Он работает большую часть времени, хотя 1/10 раз окно еще cosed:
~alt::
hotkey, alt, off
hotkey, !F4, doNothing, on
sleep, 10
hotkey, !F4, doNothing, off
while(getKeyState("alt"))
sleep, 1
hotkey, alt, on
return
doNothing:
return
Вот это изменение, я думал, что будет решить мою проблему фокусировки, отправив 2nd Alt, когда «закрыть активное окно» был обнаружен:
doNothing:
send {LAlt}
return
Однако второй Alt не отправляется. Он отправляется, когда задержка выше 40, однако я считаю, что это слишком долго, и в свою очередь это мешает моему ручному использованию Alt + F4.
Ваш первый подход работает! Единственная проблема в том, что он по-прежнему вызывает Alt, который обычно оставляет меня в меню активного окна (File, Edit, View и т. д.), или если вы печатаете в текстовом поле (например, это), он удаляет фокус ввода. Можете ли вы объяснить логику что происходит в этом фрагменте? Если я добавлю дополнительный Alt, когда он обнаружит Fn + Alt, он должен отменить изменение фокуса. Плюс я, возможно, захочу его отредактировать, но я не уверен, что происходит. – Bort
Я скорректировал код (& post), теперь немного изменился. – Blauhirn
Спасибо, но я, возможно, объяснил себя плохо. Ваш исходный код работал, но новый - нет. Я просто хотел отредактировать исходный код, чтобы снова нажать Alt, если обнаружил «Закрыть активное окно». Я редактировал свой вопрос, чтобы показать, что я пробовал. Имейте в виду, что я не хочу отключать F4 или Alt + F4, когда я делаю это вручную. – Bort