Из-за безумной раскладки клавиатуры ноутбука и невозможности сопоставить комбинации Fn я хочу сделать несколько повторных применений. Я хотел бы использовать клавишу LWin в качестве модификатора (например, LWin + Right ==> End и т. д.). Работает отлично.
Однако я хочу остановить LWin при нажатии и отпускании отдельно, чтобы вызвать меню Windows (b / c я иногда нажимаю модификатор, но затем решаю не завершать действие) а также Я все еще хочу иметь доступ к меню Windows довольно легко, скажем, через LAlt + LWin. (Очевидно, что в противном случае LWin должен действовать как правильный модификатор.)
Итак, я попробовал:
#LAlt::Send {LWin}
что вроде работает, но некрасиво (нужно, чтобы LWin удерживался нажатым, пока нажат и отпущен Alt). Естественнее было бы наоборот, т.е.
!LWin::Send {LWin}
но это не работает (даже с префиксом $
или ~
).
Хуже всего мне не удалось отключить ключ LWin в одиночестве таким образом, чтобы он все еще работал как модификатор:
LWin::Return
убивает его полностью.
Я новичок в autohotkey (думаю, с клавиатурой повезло;)); какой хороший способ решить эти проблемы?
Обновление: вот мой файл горячих клавиш полностью:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#InstallKeybdHook
; Win + arrows
*#Right::Send {End}
*#Left::Send {Home}
*#Down::Send {PgDn}
*#Up::Send {PgUp}
; Sane CapsLock: make it Shift, Shift+CapsLock as CapsLock
CapsLock::Shift
+CapsLock::CapsLock
; Alt-Win to Win (so that Win menu is accessible still)
; and disable Win alone (so that it won't pop up with navigation)
;??????????????
Это должно работать:
LWin up::return
<!Lwin::
send ^{Esc}
return
<#right::
send {end}
return
Использование Ctrl + Esc вместо LWin здесь делает свое дело.
Я скопировал эти 4 строки в конец своего скрипта (см. Выше в обновленном вопросе), и, похоже, они не работают. LAlt + LWin вызывает меню, но LWin также вызывает только меню, а LWin + стрелки работают по умолчанию в Windows 10.
@fastcatch действительно начальный код работал, проблема заключалась в том, что вам нужно было использовать <#
(Lwin) с другой горячей клавишей, чтобы заставить его работать. Добавлен пример.
Я не уверен, что понимаю на 100%, но это действительно так, спасибо!
Спасибо! Я попробовал, и он действительно правильно обрабатывает только LWin. Однако похоже, что это убило мои другие комбо (такие как LWin + Right ==> End: * # Right :: Send {End}). Есть шанс их оживить?