Функция WinMove

         Описание функции


WinMove

Перемещение и / или изменение размера окна.

WinMove ( "title", "text", x, y [, width [, height [, speed ]]] )

Параметры

title Заголовок/дескриптор/класс окна. См. заголовки и текст окон (расширенные).
text Текст окна.
x Новая X-координата.
y Новая Y-координата.
width [необязательный] Новая ширина окна.
height [необязательный] Новая высота окна.
speed [необязательный] Скорость перемещения окна, указывается в диапазоне от 1 (быстро) до 100 (медленно). Если параметр не указан, то мгновенно.

Возвращаемое значение

Успех:Возвращает дескриптор окна.
Ошибка:Возвращает 0, если окно не найдено.

Примечания

WinMove() не влияет на свёрнутые окна, но работает для скрытых окон.
Если размеры окна малы (или отрицательны), окно будет не меньше 112 x 27 пикселей. Если размеры окна велики, окно будет не больше приблизительно [12+@DesktopWidth] x [12+@DesktopHeight] пикселей.
Допускаются отрицательные значения координат X и Y. На самом деле вы можете перемещать окно за экран; и если окно программы помнит свою позицию, окно появится в углу (но полностью на экране) при следующем запуске программы.
Если несколько окон соответствуют критерию, то из них используется последнее активное окно.

Если X и Y равны ключевому слову Default, то не перемещается, а только изменяется размер.

Параметр скорости влияет только на перемещение, размер же меняется мгновенно.

См. также

WinGetPos, WinActivate, WinClose, WinGetClientSize, WinSetState

Пример

; Запуск блокнота
Run('notepad.exe')

; Ожидание 5 секунд до появление окна блокнота
$hWnd = WinWait("[CLASS:Notepad]", "", 5)
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

Sleep(400)
; Получает позицию и размеры окна, чтобы в дальнейшем возвратить начальные параметры.
Local $aPos = WinGetPos($hWnd)

; Перемещает и изменяет размер окна блокнота
WinMove($hWnd, "", 10, 10, 200, 300)
Sleep(700) ; Ожидание 0,7 секунд после каждого перемещения окна, для просмотра эффекта
WinMove($hWnd, "", 300, 100, 400, 200)
Sleep(700)
WinMove($hWnd, "", 50, 300, 200, 200)
Sleep(700)
; Перемещает и устанавливает размеры окна в первоначальное состояние.
WinMove($hWnd, "", $aPos[0], $aPos[1], $aPos[2], $aPos[3])
Sleep(700)

; Закрывает блокнот.
WinClose($hWnd)