WinMove

AutoHotKey

WinMove

改变指定窗口的位置和/或大小.

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

参数

X, Y

目标窗口新位置的左上角的 X 和 Y 坐标 (单位为像素), 可以为 表达式. 屏幕左上角坐标为 0, 0.

如果只指定了这两个参数, 那么使用 上次找到的窗口 为目标窗口.

或者可以省略 X 和/或 Y, 此时使用当前位置.

WinTitle

窗口标题或识别目标窗口的其他条件.请参阅 WinTitle.

WinText

如果使用此参数, 那么它必须是目标窗口中单个文本元素的子字符串 (和内置的 Window Spy 工具显示的一样). 当 DetectHiddenText 的设置为 ON 时, 那么会检测到隐藏文本元素.

Width, Height

目标窗口的新宽度和高度 (单位为像素), 可以为 表达式. 如果其中一个省略, 为空或为单词 DEFAULT, 那么在这个维度中的大小将保持不变.

ExcludeTitle

标题中含有此参数值的窗口将被排除.

ExcludeText

文本中含有此参数值的窗口将被排除.

备注

如果 WidthHeight 太小 (或为负数), 那么大多数带标题栏的窗口最小尺寸不会小于 112 x 27 像素 (不过, 有些类型的窗口的最小的尺寸可能有差异). 如果 WidthHeight 太大, 那么大多数窗口最大尺寸不会大于超过桌面尺寸大约 12 像素.

x 和 y 坐标中可以使用负数, 这样可以支持多显示器系统且可以让窗口被完全移出屏幕.

尽管 WinMove 不能移动最小化状态的窗口, 不过当 DetectHiddenWindows 设置开启时它可以移动隐藏窗口.

WinMove 移动窗口的速度受 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)
}