未启动的程序如何启动,已启动的如何聚焦?

How to start a program if not already started, put on focus if already started?

我想制作一个 ahk 脚本来启动应用程序(如果它们当前未启动)并最大化它们(如果它们已启动)。可以使用 AHK 吗?

CapsLock & w::

    Run firefox.exe

Return

类似这样,但如果我按 CapsLock & w 然后最小化 firefox,按 CapsLock & w 会使其恢复最大化/聚焦。有任何想法吗?谢谢!

当然,这对于 AHK 来说非常简单且可行。
这是一个非常简单直接的例子

CapsLock & w::
    if (WinExist("ahk_exe notepad.exe"))
    {
        WinActivate, ahk_exe notepad.exe
        WinMaximize, ahk_exe notepad.exe
    }
    else
        Run, notepad.exe
return

ahk_exe (docs) 被他们的进程用来引用windows。很方便。

您要查找的代码与他们在文档中为 WinActivate

提供的示例有些相似

因此,根据您的目的修改该示例,并添加条件语句会得到:

CapsLock & w::

if WinExist("ahk_exe firefox.exe")
    if WinActive("ahk_exe firefox.exe")
     WinMinimize
    else
     WinActivate
else
    Run firefox.exe
Return


请注意,此脚本目前只会最小化当前处于活动状态的 Firefox window window。如果您需要它在后台最小化 Firefox,脚本可能会更复杂一些,因为您可能打开多个 Firefox windows,并且您需要提供条件和逻辑来处理此类情况。但是,如果您需要此功能,请描述如果发生这种情况您希望发生什么行为,我可以处理它。