Autohotkey 运行程序或激活/切换的热键

Autohotkey 运行程序或激活/切换的热键,autohotkey,Autohotkey,我对自动热键程序相当陌生,但我喜欢它的所有功能。 我希望创建一个热键来打开一个程序(如果它还没有打开),但它是打开激活窗口。 我试过下面的方法,但似乎不起作用 ^+e:: #IfWinExist, ahk_class XLMAIN ahk_exe EXCEL.EXE { WinActivate ahk_class XLMAIN ahk_exe EXCEL.EXE } return #IfWinExist #IfWinNotExist, ahk_class ahk_class XLMA

我对自动热键程序相当陌生,但我喜欢它的所有功能。 我希望创建一个热键来打开一个程序(如果它还没有打开),但它是打开激活窗口。 我试过下面的方法,但似乎不起作用

^+e::
#IfWinExist, ahk_class XLMAIN ahk_exe EXCEL.EXE
{
      WinActivate ahk_class XLMAIN ahk_exe EXCEL.EXE
}
return
#IfWinExist
#IfWinNotExist, ahk_class ahk_class XLMAIN ahk_exe EXCEL.EXE
{
run C:\Program Files\Microsoft Office\Office16\EXCEL.EXE
}
#IfWinNotExist
return

另外,您能否确认鼠标位置在双屏或windows 10上是否不起作用

任何帮助都将不胜感激,非常感谢

三件事:

  • 我修复了代码的语法和逻辑。请尽量避免使用#If语句(特别是如果您是新手),因为这些语句往往会破坏脚本
  • 对于IfWinActive,不要同时使用ahk_类和ahk_exe,因为这将是冗余的(据我所知,这是非功能性的)
  • 仔细检查EXCEL.EXE的位置是否在脚本中所说的位置(
    C:\Program Files\Microsoft Office\Office16\EXCEL.EXE
    ),因为在我的计算机上它位于
    C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE
  • 以下是对我有用的代码:

    ^+e::
    IfWinExist, ahk_exe EXCEL.EXE
    {
        WinActivate  ; Automatically uses the window found above.
        WinMaximize  ; same
        Send, Some text.{Enter}
        return
    }else{
        run C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE
    }
    return
    

    >“另外,您能否确认鼠标位置在双屏或windows 10上是否不起作用?”<作为单独的问题提问;我有一个较长的答案,我不认为把它和第一个问题的答案联系起来是合适的。但是tl;dr:是的,从理论上讲这是完全可能的,但要使它在实践中发挥作用需要一些努力,指令非常好用,应该鼓励使用。它们只是需要正确使用。它们也可以在这个脚本中使用,但没有必要真正使用它们。同样,括号的位置也不重要,主要是个人喜好。只有在某些遗留AHK语句中,它才会导致问题(如果WinExist是遗留的,不应该使用)