WinClose

指定したウィンドウを閉じる。

WinClose WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText

パラメータ

WinTitle、WinText、ExcludeTitle、ExcludeText

型:文字列整数またはオブジェクト

もしこれらの項目が未設定または省略されたときは、最後に見つかったウィンドウが使用されます。そうでない場合は、WinTitleウィンドウタイトルまたはターゲットウィンドウを識別するための他の基準、および/またはWinTextにターゲットウィンドウの単一のテキスト要素からの部分文字列(付属のWindow Spyユーティリティを使えばわかります)を指定します。

ExcludeTitleExcludeTextはウィンドウのタイトルまたはテキストで除外するために使用します。指定の仕方はWinTitleWinTextに似ていますが、ExcludeTitleはウィンドウのタイトル以外の基準(ウィンドウクラスやHWNDなど)を認識しません。

ウィンドウのタイトルとテキストは大文字と小文字を区別します。DetectHiddenWindowsDetectHiddenText.で変更しない限り、初期設定では非表示ウィンドウは検出されず、非表示テキストは検出されます。SetTitleMatchModeで変更しない限り、初期設定ではウィンドウのタイトルはその中のどこかにWinTitleまたはExcludeTitleを含んでいれば一致します。

SecondsToWait

型:整数または浮動小数点数

If omitted, the function will not wait at all. Otherwise, specify the number of seconds (can contain a decimal point) to wait for the window to close. その期間内にウィンドウが閉じなければ、スクリプトは続行される。

エラー処理

グループモードが使用されている場合を除き、ウィンドウが見つからなかった場合はTargetErrorがスローされます。

ウィンドウが見つかっても閉じられない場合は例外がスローされないので、ウィンドウが閉じたかどうかを確実に判断する必要がある場合は、WinExistまたはWinWaitCloseを使用する。

備考

この関数はウィンドウを閉じるメッセージを送信する。結果はウィンドウに依存する(データの保存を求められるなど)。

一致するウィンドウがアクティブな場合、そのウィンドウは他の一致するウィンドウよりも優先して閉じられる。一般に、複数のウィンドウがマッチした場合、一番上の(最近使われた)ウィンドウが閉じられる。

ただし、WinTitleahk_group GroupName(他の条件が指定されていない) の場合は、グループ内のすべてのウィンドウが対象となる。

機能が待機状態にある間、ホットキーカスタムメニュー項目、またはタイマーによって新しいスレッドを起動することができます。

WinCloseはターゲット・ウィンドウにWM_CLOSEメッセージを送る。別の方法として、次のようなメッセージを送ることもできる。Alt+F4を押したり、タイトルバーにあるウィンドウの閉じるボタンをクリックしたりするのと同じような効果があるため、異なる動作をするかもしれない:

PostMessage 0x0112, 0xF060,,, WinTitle, WinText  ; 0x0112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

WinCloseで閉じないウィンドウは、WinKillで強制的に閉じることができる。

WinKill, WinWaitClose, ProcessClose, WinActivate, SetTitleMatchMode, DetectHiddenWindows, Last Found Window, WinExist, WinActive, WinWaitActive, WinWait, GroupActivate

メモ帳があればそれを閉じ、なければ電卓を閉じる。

if WinExist("Untitled - Notepad")
    WinClose ; Use the window found by WinExist.
else
    WinClose "Calculator"