Обнаружение действий Windows, встроенных в AutoGUI, с помощью _WinAPI_SetParent

Я использовал _WinAPI_SetParent для встраивания некоторых программ в GUI AutoIt . Затем я обнаружил, что больше не могу обнаруживать эти программные окна, можно обнаружить только их родителя (= AutoIt GUI). Я использую ShellHook, и он говорит мне, что окна программы уничтожены. Кроме того, ShellHook также не может долго обнаруживать эти программные окна.

Итак, как отслеживать эти действия окон программы, которые встроены в графический интерфейс AutoIt, например, можно использовать WinExists, WinActive и отправлять им команды, например WinActivate, WinGetHandle. Или использовать ShellHook для этого?

Эта функция использует DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $hWndChild, "hwnd", $hWndParent)


person user565739    schedule 03.12.2011    source источник


Ответы (1)


После внедрения окна становятся элементами управления. Поэтому попробуйте использовать функции Control*. Например, вы должны использовать ControlFocus для замены WinActivate, ControlGetHandle для замены WinGetHandle.

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

person Matt    schedule 05.12.2011