仅重新映射Windows键,保留Windows键组合

仅重新映射Windows键,保留Windows键组合,windows,autohotkey,Windows,Autohotkey,我希望在单独按下时只重新映射左窗口键,并保留每个左窗口键组合,如LWin+左/右等 到目前为止,我尝试过的任何解决方案都没有很好的效果:有时脚本不会截取windows键,并且主要是在默认windows行为和自动热键脚本行为之间执行某些操作 这是迄今为止效果最好的脚本: $LWin:: KeyWait, LWin, T0.3 If !ErrorLevel { Send, +!{space} } Else { Send, {LWin D

我希望在单独按下时只重新映射左窗口键,并保留每个左窗口键组合,如LWin+左/右等

到目前为止,我尝试过的任何解决方案都没有很好的效果:有时脚本不会截取windows键,并且主要是在默认windows行为和自动热键脚本行为之间执行某些操作

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

$LWin::
    KeyWait, LWin, T0.3
    If !ErrorLevel {
        Send, +!{space}
    }
    Else {
        Send, {LWin Down} 
    }   
    KeyWait, LWin
Send, {LWin Up}
Return
我尝试过的事情:

试试这个:

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-up::
如果(A_PriorKey=“LWin”);LWin被单独逼迫
发送,+!{space}
返回

; 在这种情况下,有必要通过使用“&”或“运行AHK提升来定义自定义组合。

你说

有时,脚本不会截取windows键,主要是在默认windows行为和自动热键脚本行为之间执行某些操作

如果遇到自动热键的不确定性行为,请将其提升运行,即以管理员身份运行

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

  • 因此,不要创建sphoisticated解决方案脚本,而是返回到以前无法可靠运行的简单脚本,并使用提升的AHK进行尝试。

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

这太棒了,我非常感谢您!已经测试了半天,效果非常好!很高兴我能帮上忙!也可以忽略“LWin”吗“如果与鼠标左键结合使用,请尝试添加: