【问题标题】:Toggle between keyboard shortcuts with AutoHotKey使用 AutoHotKey 在键盘快捷键之间切换
【发布时间】:2018-01-06 00:07:28
【问题描述】:

我正在尝试映射一个键以在两个不同的快捷方式之间切换。目的是在 Windows 10 的桌面之间轻松切换(而不必按三个按钮)

我正在尝试的是:

toggle      := false
½:: Toggle = false ? ( ^#Right, Toggle := true ) : ( ^#Left, Toggle := false )

她的脚本运行没有错误,但它不起作用。

谁能给我一个提示?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    应该是send ^#Right,但是你不能在三元运算符中添加额外的命令。您只能指定要存储到toggle 中的值(如here 所示)。

    Toggle = false ? ... 必须是 Toggle := false ? ...,因为右侧是表达式,而不是字符串。

    试试

    %::
        toggle := !toggle
        if(toggle)
            send ^#{Right}
        else
            send ^#{Left}
    return
    

    我个人想不出更紧凑的方式来实现这一点,而这显然是您想要实现的。

    【讨论】:

    • 感谢您的回答!不幸的是,它对我不起作用。如果我进入记事本,它会在写出“eft”和“ight”之间切换(当然没有引号)?很奇怪。从文档中它说 Right 和 Left 是命令,但似乎 AutoHotKey 只是解释 R 和 L?
    • 嗯,当然是send ^#{Right}。我编辑了我的帖子
    • 谢谢!我尝试使用所有命令{^#Right} 周围的括号。谢谢布劳赫姆!这使得在桌面上工作变得更加容易
    【解决方案2】:

    如果你想用两个以上的[键盘快捷键]切换,

    您可以使用此 AHK 代码。

    Example1.ahk

    ; [+ = Shift] [! = Alt] [^ = Ctrl] [# = Win] 
    #SingleInstance ignore
    a := 1 
    
    ; If you want to toggle with more the two toggle's you can use this code.
    ;a = 1   => send {^#Right}
    ;a = 2   => send {^#Left}
    ;a = 3   => send {????}
    
    ;click the f1 key to toggle 
    f1::
    if (a=1)
    {
    Menu, Tray, Icon,c:\icons\32x32\icon1.ico,1,1 ; change tray icon
    send {^#Right}
    a := 2
    }else{
    
    if (a=2)
    {
    Menu, Tray, Icon,c:\icons\32x32\icon2.ico,1,1 ; change tray icon
    send {^#Left}
    a := 3
    }else{
    
    if (a=3)
    {
    Menu, Tray, Icon,c:\icons\32x32\icon3.ico,1,1 ; change tray icon
    ;send {????}
    a := 1
    }}}
    return
    
    esc::exitapp
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      相关资源
      最近更新 更多