1

Тема: AHK: Всегда сверху конкретного окна

Пытаюсь выводить окно gui поверх окна калькулятора так, чтобы оно всегда было над ним, но не вылезало над другими окнами, если они накладываются на него.
Изменение AlwaysOnTop по таймеру при активации и деактивции проводника работет неверно.
В форуме встретил всяке примочки типа  +E0x80020 +hwndID "+Owner hParent, но как пользоваться ими не понял.
Как вообще должна решаться такая задача?

2 (изменено: Foma, 2014-01-18 21:17:55)

Re: AHK: Всегда сверху конкретного окна

Как присвоить gui свойство +OwnDialogs относительно чужого окна?

3

Re: AHK: Всегда сверху конкретного окна

Как вариант:


Win = ahk_class CalcFrame ahk_exe calc.exe
WinWait %Win%

Gui Margin, 0,0  
Gui +Hwndhgui -Caption -DPIScale ; +E0x08000000 если не надо активировать при клике
Gui, Add, Progress, w111 h12 BackgroundEC4D48, 50 
Gui, Add, Progress, x+12 w111 h12 BackgroundEC4D48 Vertical, 50 
DllCall("SetParent", "uint", hgui, "uint", WinExist(Win))
Gui Show, NA x0 y0
return 

если выводить надо не над заголовком или меню.

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

4

Re: AHK: Всегда сверху конкретного окна

Как присвоить gui свойство +OwnDialogs относительно чужого окна?

Или вам надо чтобы калькулятор был заблокирован?

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

5

Re: AHK: Всегда сверху конкретного окна

Нет, блокировка не нужна. С кодом разбираюсь, спасибо.

6

Re: AHK: Всегда сверху конкретного окна

Invalid option DPIScale

7

Re: AHK: Всегда сверху конкретного окна

Версия устарела.

8

Re: AHK: Всегда сверху конкретного окна

Нет, блокировка не нужна

Тогда OwnDialogs зачем?

Версия устарела.

Надо обновить AutoHotkey.

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

9

Re: AHK: Всегда сверху конкретного окна

Очень не стабильно работает. То виден, то нет, то кусочками.  Пробовал заменить текстом - результат тот же. Может этот код надо как-то по особому применять?

10

Re: AHK: Всегда сверху конкретного окна

Если под gui находится родной контрол то забирая фокус он будет вылезать поверх gui. Можно например предварительно сместить или скрыть этот контрол.

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

11 (изменено: Foma, 2014-01-19 18:02:32)

Re: AHK: Всегда сверху конкретного окна

Контролы почти всегда же есть под низом?

Вот так тоже пропадает:
Win = ahk_class Notepad ahk_exe notepad.exe
WinWait %Win%

Gui Margin, 0,0  
Gui +Hwndhgui -Caption -DPIScale ; +E0x08000000 если не надо активировать при клике
Gui, Add, Progress, w111 h12 BackgroundEC4D48, 50 
Gui, Add, text, x+12 y+10 w111 h12, %A_TickCount% 
DllCall("SetParent", "uint", hgui, "uint", WinExist(Win))
Gui Show , NA x0 y0
return

12

Re: AHK: Всегда сверху конкретного окна

Foma, код оформляется тегом [cоde], отредактируйте свой пост.

Run, calc,,, PID
WinWait, ahk_pid %PID%
WinGet, hCalc
WinGetPos, X, Y

Gui Margin, 0,0 
Gui, -Caption +ToolWindow +Owner%hCalc%
Gui, Add, Progress, w111 h12 BackgroundEC4D48, 50
Gui, Add, text, x+12 y+10 w111 h12, %A_TickCount%
Gui Show , NA x%X% y%Y%
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Всегда сверху конкретного окна

Строго тут  вас. Исправил. Код подходит. Спасибо.

14 (изменено: serzh82saratov, 2014-01-19 18:27:39)

Re: AHK: Всегда сверху конкретного окна

teadrinker

[v1.1.03+]: +Owner can be immediately followed by the name or number of an existing Gui or the HWND of any top-level window.

Прикольно, я этого не видел.

О, и:

Parent [v1.1.03+]: Use +Parent immediately followed by the name or number of an existing Gui or the HWND of any window or control to use it as the parent of this window. To convert the Gui back into a top-level window, use -Parent. This option works even after the window is created.

DllCall("SetParent"

можно заменить, на:

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

15 (изменено: ice_daemon, 2014-01-21 03:05:01)

Re: AHK: Всегда сверху конкретного окна

AHK
В продолжение темы, тоже прошу помочь.
Есть две программы, Total commander и Executor, требуется, чтобы окно Executor'a было всегда поверх окна Total Commander'a, но не вылезало над другими окнами, и при сворачивании-разворачивании Total Commander'a, сворачивалось-разворачивалось вместе с ним.
Спасибо!