# WinKill

强制关闭匹配指定条件的窗口。

WinKill [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText]

#### 参数

WinTitle | 目标窗口的标题或标题中的部分文字（匹配模式由 SetTitleMatchMode 决定）。如果省略其它 3 个窗口参数，默认目标是 上一次匹配窗口 。如果这个参数使用字母 A ，同时省略其它 3 个窗口参数，则以当前激活的窗口作为目标。要用窗口的 class 名进行匹配，使用 ahk_class 精确 class 名（Window Spy 中可以显示 class 名）。要用窗口的 进程标识符（PID）进行匹配，使用 ahk_pid %PID变量% 。要用 窗口组 ，使用 ahk_group 组名 （此时 WinText ，ExcludeTitle ，以及 ExcludeText 三个参数要省略）。要用窗口的 唯一 ID 进行匹配，使用 ahk_id %ID变量% 。要减小检测范围，使用 多重条件 ，例如：My File.txt ahk_class Notepad
WinText | 如果使用这个参数，则它应该是目标窗口中某个文本元素的子字符串（在 Window Spy 中会显示出窗口中的文本元素）。隐藏文本只有在 DetectHiddenText 设置为 ON 的时候才能检测到。
SecondsToWait | 如果省略或留空，命令完全不会等待。如果使用 0 ，会等待 500ms 。否则，它会等待指定的时间（可以包含小数点或者是一个 表达式 ）来让窗口彻底关闭。如果窗口在指定的时间内并未关闭，脚本会继续执行，但是该命令 不会 设置 ErrorLevel/错误等级 。所以当需要检测一个窗口是否已被关闭的时候，使用 IfWinExist 或 WinWaitClose 。
ExcludeTitle | 标题中包含该参数指定的文字的窗口将被除外。
ExcludeText | 文本元素中包含该参数指定的文字的窗口将被除外。

#### 注意

这个命令首先会短暂的尝试正常关闭窗口，如果失败了，就通过结束窗口进程的方式来强制关闭它。

如果匹配的窗口中有一个处于激活状态，那么它会被关闭，脚本不会再去关闭其它的匹配窗口。一般情况下，如果匹配的窗口不止一个，处于最前端（最近使用）的窗口将被关闭。

这个命令只对匹配窗口中处于最前端的进行操作，除了在 WinTitle 参数中使用 ahk_group 组名 的时候，这时候会影响窗口组中的所有窗口。

窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口，必须打开 DetectHiddenWindows 。

#### 相关命令

WinClose, WinWaitClose, Process, WinActivate, SetTitleMatchMode, DetectHiddenWindows, Last Found Window, IfWinExist, IfWinActive, WinWaitActive, WinWait, GroupActivate

#### 示例

    IfWinExist, Untitled - Notepad
        WinKill ; 使用上面找到的窗口
    else
        WinKill, Calculator