Что нового

[Элементы GUI] Размещение чужого окна внутри GUI

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Задача в следующем - поместить окно чужого процесса внутрь формы с сохранением функциональности. Не знаю как выразиться точнее... Мне нужно либо поместить чужое окно внутрь своей формы, либо , на мертво, приклеить его к ней сбоку, чтоб при перемещении своего, чужое перемещалось вместе с ним.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,601
Репутация
941
WinGetPos("Твое окно")
WinSetPos("Окно Врага", Твое ОкноХ + Окно ВрагаХ, Твое окноУ + Окно ВрагаУ... и тд
 
Автор
N

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
WinSetPos!!!??? В моём автоите нет такой команды, или это библиотечная? WinMove использовать пробывал таким образом, что то не очень получилось (
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
370
Вот держи:
Код:
Run('notepad')
Sleep(200)
Run('calc')
Sleep(200)
$aWinCoord = WinGetPos('Калькулятор') ; получаем размеры окна-Хвоста
Dim $aCoord_old[4] = [0,0,0,0]
While 1
	Sleep(10)
	$aCoord = WinGetPos('Безымянный - Блокнот'); получаем координаты окна-Босса
	If $aCoord <> $aCoord_old Then ; проверяем изменилось ли положение окна
		$aCoord_old = $aCoord ; если изменилось - записываем координаты для дальнейшего сравнения
		WinMove('Калькулятор', '', $aCoord_old[0] - $aWinCoord[2], $aCoord_old[1]); располагаем окно-Хвост слева от Босса
	EndIf
WEnd


Но если закрыть одно из окон скрипт грохнется :D.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Redline [?]
Но если закрыть одно из окон скрипт грохнется
Можно добавить
Код:
;...
$aCoord = WinGetPos('Безымянный - Блокнот'); получаем координаты окна-Босса
	If @error Then
        Exit
    EndIf
;...
И вначале, чтобы быстрее двигал окно
Код:
Opt("WinWaitDelay", 0)
 
Верх