4

我正在尝试在 Windows 中使用相同的 hokey 打开和关闭程序(例如记事本),比如说 Strg+Alt+X。因此,当程序关闭时,我希望用“X”打开它,而当它打开时,我希望用“X”关闭它。

这很容易用两个热键来完成,一个打开程序,一个关闭程序。但我不知道如何为同一个热键解决这个问题。有人能指出我正确的方向吗?也许这可以通过 Autohotkey 实现?

4

2 回答 2

6

我相信这就是您正在寻找的。StartClose如果您还想为其他应用程序制作热键,我已经创建了该方法以供将来使用。您可以使用 Window Spy 找到窗口标题和类,可以通过右键单击 AutoHotkey 托盘图标找到。

x::StartClose("ahk_class Notepad", "notepad.exe")

StartClose(title, exe)
{
    IfWinExist, %title%
        WinClose
    else
    {
        Run, %exe%
        WinActivate
    }
}
于 2012-11-15T16:39:27.140 回答
1

Elliot 的回答为我指明了正确的方向(我对AutoHotKey语法完全陌生)。他的方法使用窗口标题,该标题适用于不最小化到系统托盘的程序。但是如果你有这样的程序,最好根据进程ID关闭它:

^!x::StartClose("XMouseButtonControl.exe")

StartClose(exe)
{
Process, Exist, %exe% ; check to see if program is running
If (ErrorLevel = 0) ; If program is not running -> Run
    {
    Run, %exe%
    }
Else ; If program is running, ErrorLevel = process id for the target program -> Close
    {
    Process, Close, %ErrorLevel%
    }
}
于 2012-11-16T12:18:13.810 回答