【问题标题】:Autohotkey macro: trying to remap left-alt to left-win; left-win to left-win with a toggleAutohotkey 宏:尝试将 left-alt 重新映射到 left-win;通过切换左赢到左赢
【发布时间】:2011-11-20 18:00:36
【问题描述】:

我正在尝试在 AutoHotKey 中将 Left Alt 重新映射到 Left Win 并将 Left Win 重新映射到 Left Alt。

但我也希望使用 Shift + F11 来切换这两个重映射。

我知道我能做到:

LAlt::LWin  
LWin::LAlt

但我想不通的是切换。以下版本失败:

Shift & F11::
Hotkey, LAlt, Toggle
Hotkey, LWin, Toggle
return

当我按下 Shift 和 F11 时,它会说:

---------------------------
test.ahk
---------------------------
Error:  Nonexistent hotkey.  The current thread will exit.

Specifically: LAlt

    Line#
    001: Return
    002: SetKeyDelay,-1
    002: Send,{Blind}{LAlt DownTemp}
    002: Return
    002: SetKeyDelay,-1
    002: Send,{Blind}{LAlt Up}
    002: Return
--->    006: Hotkey,LAlt,Toggle
    007: Hotkey,LWin,Toggle
    008: Return
    009: Exit
    010: Exit
    010: Exit

---------------------------
OK   
---------------------------

我已经摸不着头脑了好几个小时了。任何意见都将不胜感激!

【问题讨论】:

    标签: macros autohotkey remap


    【解决方案1】:

    我确信它比必要的更冗长,但我刚刚尝试了这个脚本,它做了一些你所追求的事情。如果不出意外,它可能会向您发送正确的方向。

    #NoEnv
    SendMode Input
    
    IsRemapEnabled := false
    SetRemapEnabled(false)
    
    SetRemapEnabled(toEnabled) 
    {
      global IsRemapEnabled := toEnabled
    }
    
    +F11::
      SetRemapEnabled(!IsRemapEnabled)
    return
    
    LAlt::
      if (IsRemapEnabled) 
      {
        Send,{LWin DOWN}
      } else 
      {
        Send,{LAlt DOWN}
      } 
    return
    
    LAlt up::
    
      if (IsRemapEnabled) 
      {
        Send,{LWin UP}
      } else 
      {
        Send,{LAlt UP}
      } 
    return
    
    LWin::
      if (IsRemapEnabled) 
      {
        Send,{LAlt DOWN}
      } else 
      {
        Send,{LWin DOWN}
      } 
    return
    
    LWin UP::
      if (IsRemapEnabled) 
      {
        Send,{LAlt UP}
      } else 
      {
        Send,{LWin UP}
      } 
    return
    

    【讨论】:

    • 感谢您的回复;单独指定向下/向上和直接 LAlt::LWin 之间有一个区别;比如1)运行脚本2)此时win还是win,alt还是alt,如果打开资源管理器窗口,按一次alt显示菜单栏(win7/vista),再次按alt隐藏; 3) 按 shift+f11;4)win 现在是 alt; alt 现在赢了; win+number 仍然激活任务栏图标(win7); alt+tab 仍然是 alttab;5) 再次 shift+f11,6) 但这次,在菜单中按一次 alt;但是第二次按下它不会隐藏它。
    猜你喜欢
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2013-06-28
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多