WinActive()

检查指定的窗口是否处于活动状态, 并返回其唯一 ID(HWND).

UniqueID := WinActive(WinTitle, WinText, ExcludeTitle, ExcludeText)

参数

WinTitle
窗口标题或识别目标窗口的其他条件. 请参阅 WinTitle.
WinText
如果使用此参数, 那么它必须是目标窗口中单个文本元素的子字符串(和内置的 Window Spy 工具显示的一样). 当 DetectHiddenText 的设置为 ON 时, 那么会检测隐藏文本元素.
ExcludeTitle
标题中含有此参数值的窗口将被排除.
ExcludeText
文本中含有此参数值的窗口将被排除.

返回值

函数返回匹配指定条件的活动窗口的唯一 ID(HWND)(为十六进制整数). 如果不匹配, 则函数返回 0.

因为所有非零数字被视为 "true", 所以每当 WinTitle 为活动时, if WinActive("WinTitle") 语句为真.

备注

如果省略所有参数, 那么将使用上次找到的窗口.

如果活动窗口符合匹配, 那么上次找到的窗口将更新为当前活动窗口.

获取活动窗口的唯一 ID 的简便方法是使用 ActiveHwnd := WinExist("A").

窗口标题和文本是区分大小写的. 只有在打开 DetectHiddenWindows 时, 才能检测到隐藏窗口.

IfWinActive / IfWinNotActive, WinExist(), SetTitleMatchMode, DetectHiddenWindows, 上次找到的窗口, WinActivate, WinWaitActive, WinWait, WinWaitClose, #IfWinActive/Exist

示例

关闭记事本或另一个窗口, 这取决于 WinActive 函数找到的是哪个窗口. 注意, "ahk_" 关键字和它的标准值之间的空格可以省略; 这在使用变量时特别有用, 如第二个 WinActive 所示.

if WinActive("ahk_class Notepad") or WinActive("ahk_class" ClassName)
    WinClose ; 使用 WinActive 找到的窗口.
unixetc