禁用LAlt DOWN操作(但保持UP操作)

时间:2018-05-02 16:11:00

标签: autohotkey

摘要:我需要按住LAlt键而不关闭“右键菜单”。

我使用我的左Alt键作为第二层激活密钥,用于60%键盘(无箭头群集)。

这对我的输入和编程用法起了作用,但我的映射有一个小问题:当我按下LAlt键时,会触发关闭右键菜单的系统上的一些内部操作无法使用我的LAlt + keys组合浏览选项。

如何重新发布:

  • 右键单击任意位置(或按AppsMenu键)以打开“右键菜单”;
  • 按住左侧的全部键。

预期行为:菜单会保持打开状态。

当前行为:菜单关闭。

您会注意到按下键(发布前)菜单将关闭。由于我使用LAlt键按箭头键,因此我无法在菜单上导航,因为当我尝试按下我的组合键以移动选择时它会关闭(LAlt + k为“向下箭头”)。

我尝试了LAlt::Return和其他一些组合,但无济于事,它总是在按键时触发系统默认功能(关闭菜单),但我的AutoHotKey脚本仅在按键启动时触发。即使我同时拥有LAlt::LAlt Up::,它们都会在按键时触发,我无法控制按键行为以取消它。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

确保您不要忘记设置#UseHook指令。

#NoEnv
#UseHook
LAlt:: return

这对我来说很好。

答案 1 :(得分:0)

啊,我在很长一段时间内都在为完全相同的问题苦苦挣扎。奇怪我之前没发现这个问题。

*LAlt::Send {Blind}{RCtrl DownR}  ; I remapped my 'LAlt' as 'RCtrl'.
*LAlt Up::
If (A_PriorKey == "LAlt")
    Send {Escape}                 ; As extra it sends 'Esc' when pressed by itself.
Send {Blind}{RCtrl Up}
return

我不使用 LAlt 创建任何热键。相反,我将 GetKeyState()#If 指令一起使用。

#If GetKeyState("LAlt", "P")

*k::
If GetKeyState(";", "P")   ; Semicolon key acts as an extra 'Shift'
  Send +{Down}             ; for easy selections.
else Send {Down}
return

*+k::Send +{Down}

... etc ...

#If