Что нового

Прикрепление окно одной программы к окну другой программы

lixar21

Новичок
Сообщения
70
Репутация
0
Здравствуйте, господа программисты
Помогите разобраться.

Как прикрепить окно одной программы к окну другой программы?

Первая программа имеет Title "14.txt — Блокнот"
Вторая программа имеет Title "Калькулятор"

На момент начала работы скрипта - оба эти окна - уже открыты.
Скрипт - размещает окно калькулятора - в левом правом углу окна блокнота, где бы это окно не находилось.
Если вручную переместить окно блокнота - то скрипт должен также переместить за ним и окно калькулятора.
 

Вложения

  • 14.txt
    0 байт · Просмотры: 2

mir546

Новичок
Сообщения
27
Репутация
0
А в чем разобраться то? Алгоритм?
Как вариант
1 цикл,
1.1 в цикле считывание координат окна 14.txt — Блокнот",
1.2 в цикле задать координаты окна Title "Калькулятор" из координат 1.1

:smile:
https://google.gik-team.com/?q=autoit+%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C+%D0%BE%D0%BA%D0%BD%D0%BE
https://google.gik-team.com/?q=autoit+%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B+%D0%BE%D0%BA%D0%BD%D0%B0
[hide][/hide]
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0
mir546, а хотя бы примерно как должен выглядеть этот скрипт ?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
возможно так
Код:
Local $hW1 = WinGetHandle('text — Блокнот')
Local $hW2 = WinGetHandle('Калькулятор')
Local $gp1 = WinGetPos($hW1)
Local $gp2 = WinGetPos($hW2)
Local $tX = $gp1[0], $tY = $gp1[1]
WinMove($hW2, '', $tX, $tY)
WinSetOnTop($hW2, '', 1)
Local $wtop
While 1
	$gp1 = WinGetPos($hW1)
	If Not @error Then
		If $tX <> $gp1[0] Or $tY <> $gp1[1] Then
			$tX = $gp1[0]
			$tY = $gp1[1]
			WinMove($hW2, '', $tX, $tY)
		EndIf
	EndIf
	Sleep(10)
WEnd
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0
joiner, подскажите - почему второе окно - выводится поверх всех окон вообще.
Как заставить второе окно (Калькулятор) - закрепляться - только поверх первого окна, не затрагивая другие окна на рабочем столе?

То есть сейчас - если открыть, например ТоталКоммандер - поверх него все равно выводится Калькулятор, хотя по идее - закрепление окна Калькулятора касается только окна Блокнота.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Думаю, что в цикле нужно проверять активность окна блокнота. Если активно, то калькулятор поверх окон, если нет, калькулятор теряет свойство поверх окон.
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0
joiner, понял.
Большое спасибо за скрипт и за совет.
 
Верх