1 (изменено: serzh82saratov, 2017-09-01 23:57:38)

Тема: AHK: Получить хэндл последнего созданного контрола окна

Как отдельно (сразу) получить хэндл последнего созданного контрола окна, не получая весь список, и не перебирая все контролы.


Gui, +HWNDhGui
Gui, Add, Text, , 1
Gui, Add, Text, , 2
Gui, Add, Text, HwndhLastHwnd, 3 

DetectHiddenWindows, On 
WinGet, List, ControlListHwnd, AHK_id %hGui%

MsgBox % RegExReplace(List, ".*\R(.*?)$", "$1") "`n" hLastHwnd
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

2

Re: AHK: Получить хэндл последнего созданного контрола окна

GUI, Add, Button, w100 h100 +HWNDhButton
GUI, Show
MsgBox, % hButton

3

Re: AHK: Получить хэндл последнего созданного контрола окна

Это и в примере есть, надо то без переменных контрола.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

4

Re: AHK: Получить хэндл последнего созданного контрола окна

В смысле? Окно своё, GUI то есть, или сторонней программы? Если своё GUI, то что ещё нужно для счастья?

5

Re: AHK: Получить хэндл последнего созданного контрола окна

Так хочется.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

6

Re: AHK: Получить хэндл последнего созданного контрола окна

Для первого контрола такое есть.


SetFormat, IntegerFast, h
Gui, +HWNDhGui
Gui, Add, Text, HwndhFirstHwnd, 1
Gui, Add, Text, , 2
Gui, Add, Text, HwndhLastHwnd, 3 

MsgBox % DllCall("GetWindow", "Ptr", hGui, "Uint", GW_CHILD := 5)+0 "`n" hFirstHwnd
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

7

Re: AHK: Получить хэндл последнего созданного контрола окна

Наверное только так:

SetFormat, IntegerFast, h
Gui, +HWNDhGui
Gui, Add, Text, HwndhFirstHwnd, 1
Gui, Add, Text, , 2
Gui, Add, Text, HwndhLastHwnd, 3 

hFirstHwnd := DllCall("GetWindow", "Ptr", hGui, "Uint", GW_CHILD := 5)+0
MsgBox % DllCall("GetWindow", "Ptr", hFirstHwnd, "Uint", GW_HWNDLAST := 1)+0 "`n" hLastHwnd

8 (изменено: serzh82saratov, 2017-09-02 23:59:33)

Re: AHK: Получить хэндл последнего созданного контрола окна

Спасибо, значит я был на половине пути.

Смотрел на GW_HWNDLAST, оказалось что надо "скормить" ему любой дочерний окна.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).