【问题标题】:Disable LAlt DOWN action (but keep UP action)禁用 LAlt DOWN 动作(但保持 UP 动作)
【发布时间】:2018-05-02 16:11:00
【问题描述】:

总结:我需要在不关闭“右键菜单”的情况下按住LAlt键。


我将左 alt 键用作 60% 键盘的 第二层激活键(无箭头簇)。

它在我的打字和编程使用方面创造了奇迹,但我的映射有一个小问题:当我按下 LAlt 键时,它会触发系统上的一些内部操作,关闭右键菜单,我无法导航通过使用我的LAlt + keys 组合的选项。

如何重新处理:

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

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

当前行为:菜单关闭。

您会注意到在按键按下时(释放前)菜单将关闭。由于我使用 LAlt 键来按箭头键,因此我无法在菜单上导航,因为一旦我尝试按下组合键来移动选择,它就会关闭(LAlt + k 表示“向下箭头”)。

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

有什么想法吗?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

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

    #NoEnv
    #UseHook
    LAlt:: return
    

    这对我来说很好。

    【讨论】:

    • 这只能单独使用。将 LAlt & k::Send {Down} 添加到代码后,菜单将在 LAlt down 时再次关闭。
    【解决方案2】:

    啊,我在同一个问题上苦苦挣扎了好一阵子。奇怪我之前没有发现这个问题。

    *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
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2011-12-17
      • 1970-01-01
      相关资源
      最近更新 更多