# WinMove

对匹配指定条件的窗口进行移动或更改大小的操作。

WinMove, X, Y
WinMove, WinTitle, WinText, X, Y [, Width, Height, ExcludeTitle, ExcludeText]

#### 参数

X, Y | 目标窗口新位置的 X轴 和 Y轴 坐标（单位是像素），以窗口左上角为基准点，可以是 表达式 。屏幕左上角坐标为 0, 0 。 如果只指定了这 2 个参数，其它参数留空，默认目标是 上一次匹配窗口 。
WinTitle | 目标窗口的标题或标题中的部分文字（匹配模式由 SetTitleMatchMode 决定）。如果省略其它 3 个窗口参数，默认目标是 上一次匹配窗口 。如果这个参数使用字母 A ，同时省略其它 3 个窗口参数，则以当前激活的窗口作为目标。要用窗口的 class 名进行匹配，使用 ahk_class 精确 class 名（Window Spy 中可以显示 class 名）。要用窗口的 进程标识符（PID）进行匹配，使用 ahk_pid %PID变量% 。要用 窗口组 ，使用 ahk_group 组名 。要用窗口的 唯一 ID 进行匹配，使用 ahk_id %ID变量% 。要减小检测范围，使用 多重条件 ，例如：My File.txt ahk_class Notepad
WinText | 如果使用这个参数，则它应该是目标窗口中某个文本元素的子字符串（在 Window Spy 中会显示出窗口中的文本元素）。隐藏文本只有在 DetectHiddenText 设置为 ON 的时候才能检测到。
Width, Height | 目标窗口新大小的宽度和高度（单位是像素），可以是 表达式 。如果其中一个或两个一起留空或省略或使用单词 DEFAULT ，则默认等于原始宽度/高度。
ExcludeTitle | 标题中包含该参数指定的文字的窗口将被除外。
ExcludeText | 文本元素中包含该参数指定的文字的窗口将被除外。

#### 注意

如果 Width 和 Height 参数太小（或负数），大多数带标题栏的窗口最小不会小于 112 x 27 像素（有些类型的窗口可能大小有出入）。如果 Width 和 Height 参数太大，大多数窗口最大不会大于 (桌面分辨率 + 12) 像素。

坐标轴参数可以使用负数，这是为了支持多显示器系统，以及可以让窗口完全移出桌面。

虽然 WinMove 不能移动最小化的窗口，但是在 DetectHiddenWindows 打开的情况下它可以移动隐藏窗口。

窗口移动的速度受 SetWinDelay 影响.

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

#### 相关命令

ControlMove, WinGetPos, WinHide, WinMinimize, WinMaximize, WinSet

#### 示例

    Run, calc.exe
    WinWait, Calculator
    WinMove, 0, 0 ; 将 WinWait 找到的窗口移动到屏幕左上角。

    SplashTextOn, 400, 300, Clipboard, The clipboard contains:`n%clipboard%
    WinMove, Clipboard, , 0, 0 ; 将窗口移动到左上角
    Msgbox, Press OK to dismiss the SplashText
    SplashTextOff

    ; 下面的 函数 将指定的窗口居中。
    CenterWindow(WinTitle)
    {
        WinGetPos,,, Width, Height, %WinTitle%
        WinMove, %WinTitle%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2)
    }