1

Тема: AHK: GUI поверх определённого окна

Приветствую. Можно ли активировать GUI поверх только определённого окна (по ID, NAME, etk)? Т.е. чтобы в окне, которое перекрывает нужное, GUI не отображался.

Gui, : -Caption +AlwaysOnTop +ToolWindow +LastFound

Окна не в полноэкранном режиме.

2

Re: AHK: GUI поверх определённого окна

p.polena, в поиске надо искать, было такое.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: GUI поверх определённого окна

"В поиске искать" - отличная фраза. Было нечто подобное, но без блюдечка с каёмочкой.

4

Re: AHK: GUI поверх определённого окна

Про Owner читайте.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: GUI поверх определённого окна

p.polena
Поиск позволяет найти многое, главное хоть немного понимать что нужно искать. Собрал небольшой пример, не факт что всё верно. После запуска скрипта выбрать нужное окно и нажать 'F2'.

;[serzh82saratov] 01.10.2020	http://forum.script-coding.com/viewtopic.php?pid=142394#p142394
Gui, Parent: New, +hwndhParent, Owner
Gui, Parent: Color, 0
Gui, Parent: +Lastfound +ToolWindow +AlwaysOnTop -Caption -Border
Gui, Parent: Add, Edit, x2 y2 w100 gOk vText, ...Test...
Gui, Show, x0 y0	; Позиция когда сработает прикрепление своего Gui.
Return

F2:: DllCall("SetParent", "Ptr", hParent, "Ptr", WinExist("A"))	; Привязать своё Gui к текущему:

Ok:	; Срабатывает при вводе в контрол:
Gui, Submit, NoHide
ToolTip, % Text, 0, -30
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

6

Re: AHK: GUI поверх определённого окна

SetParent здесь не нужно, нужно лишь присвоить, как упомянул serzh82saratov, окно-владелец (owner).

Run notepad,,, PID
WinWait ahk_pid %PID%
hWnd := WinExist()

Gui, +Owner%hWnd%
Gui, Show, w300 h300

Теперь Gui всегда будет над блокнотом.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: p.polena, 2024-01-16 09:01:44)

Re: AHK: GUI поверх определённого окна

В результате получился такой код (счётчик в окне браузера):

WinWait Серый форум — Mozilla Firefox
Gui, Parent: New, +hwndhParent, Owner
Gui, Parent: Color, F7F7F9
Gui, Parent: Font, s10, Verdana
Gui, Parent: -Caption
Gui, Parent: Add, Text, Limit2 x0 y0, vFirstName
Gui, Parent: Add, UpDown, Range0-99,
Gui, Parent: Font, s10, MS sans serif
Gui, Show, x37 y7	
Gui, Show, w15 h18
Send {F2}
F2:: DllCall("SetParent", "Ptr", hParent, "Ptr", WinExist("Серый форум — Mozilla Firefox"))
Return

Догадываюсь, что некрасивый, но работает.
В варианте от __Михаил__, Gui перемещается вместе с окном в любое место, что важно.