如何使用Autohotkey关闭/最小化/最大化或发送密钥到窗口或弹出窗口?

时间:2016-01-21 21:42:39

标签: window autohotkey minimize maximize

如何使用Autohotkey在弹出窗口时自动关闭,最小化,最大化或发送键到窗口?我可以检测到一个对话框并用它关闭它:

WinWaitActive, TITLE
WinClose, TITLE

但是如果窗口在脚本执行时没有打开,那么这不起作用。

1 个答案:

答案 0 :(得分:1)

这是AH​​K用于的非常常见的任务。

首先,您需要要解决的窗口标题。阅读How to get the title of a window with AHK?

代码

关于关闭窗口的基本功能,我们需要LoopWinWaitActiveWinClose

打开堆栈溢出的Firefox窗口示例。

Loop {
  WinWaitActive, Stack Overflow - Mozilla Firefox
  WinClose,
}

说明

Loop重复多次关闭窗口的过程。 WinWaitActive等待窗口被激活(弹出)并WinClose关闭它。

提示:如果您没有指定与WindowClose一样的指定窗口标题,则会使用WinWaitActive中最后找到的窗口。 < / p>

<强>最小化/最大化

而不是WinClose使用WinMaximizeWinMinimize来执行相应的操作。

发送密钥

如果您想将特定密钥(例如 Enter )发送到窗口,请使用Send

Loop {
  WinWaitActive, Stack Overflow - Mozilla Firefox
  send {Enter}
}

附加

如果基本版本不起作用或您想创建更高级的脚本,可以进行一些可能的修改。

更多力量

如果WinClose不起作用,请尝试WinKillSend, !{F4}使用更多的力量。

作为管理员

关闭窗口可能需要管理员权限,在脚本之上使用此代码段以确保它以完全访问权限运行。

If not A_IsAdmin ;force the script to run as admin
{
    Run *RunAs "%A_ScriptFullPath%"
    ExitApp
}

其他匹配方法

默认情况下,窗口标题必须是完全匹配。要更改此行为并允许部分开头匹配,请在脚本顶部使用SetTitleMatchMode,例如SetTitlematchMode, 2部分匹配。

可以使用Window Spy中的窗口类(ahk_class)或.exe(ahk_exe)代替title。

WinWaitActive, ahk_class MozillaWindowClass

或     WinWaitActive,ahk_exe firefox.exe

仔细选择符合您需求的选项,只对正确的窗口作出反应。