【问题标题】:Remap only Windows key, keeping windows key combinations仅重新映射 Windows 键,保留 Windows 组合键
【发布时间】:2019-08-10 17:22:37
【问题描述】:

我希望仅在单独按下时重新映射左 Windows 键并保留每个左 Windows 组合键,例如 LWin+Left/Right 等

到目前为止,我尝试过的任何解决方案都没有很好的效果:有时脚本不会拦截 windows 键,并且主要在默认 windows 行为和 autohotkey 脚本行为之间做一些事情。

这是迄今为止效果最好的脚本:

$LWin::
    KeyWait, LWin, T0.3
    If !ErrorLevel {
        Send, +!{space}
    }
    Else {
        Send, {LWin Down} 
    }   
    KeyWait, LWin
Send, {LWin Up}
Return

我尝试过的事情:

【问题讨论】:

    标签: windows autohotkey


    【解决方案1】:

    试试这个:

    LWin up::
    If (A_PriorKey = "LWin") ; LWin was pressed alone
        Send, +!{space}
    return
    
    ; In this case its necessary to define a custom combination by using "&" or "<#" 
    ; to avoid that LWin loses its original function as a modifier key:
    
    <#d:: Send #d  ; <# means LWin
    

    【讨论】:

    • 这太棒了,我感激不尽!现在已经测试了半天,它就像一个魅力!
    • 很高兴能帮上忙!
    • 如果结合鼠标左键,是否也可以忽略“LWin”键?
    • 尝试添加:&lt;#LButton::return ; do nothing.
    【解决方案2】:

    高架运行 AHK。

    你说

    有时脚本不会拦截 windows 键,主要是在默认 windows 行为和 autohotkey 脚本行为之间做一些事情。

    如果您遇到 AutoHotKey 的不确定行为,请以提升的权限运行它,即以管理员身份

    我在我的脚本中经常遇到这个问题,直到我发现 AHK 不能可靠地捕获与系统相关的快捷键或键(它们有时有效,有时无效),除非它以管理员身份启动。最后一个不需要这样做的系统是 Windows XP。问题始于 Windows 7。

    • 因此,与其创建复杂的变通方法脚本,不如返回到以前运行不可靠的简单脚本,并使用提升的 AHK 进行尝试。

    提示:如果您希望在用户每次登录时提升 AHK,请使用计划任务(通过任务计划程序创建)运行它并授予任务管理员权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2014-09-08
      • 2011-05-06
      • 2020-11-05
      • 1970-01-01
      相关资源
      最近更新 更多