musicstashall
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ищу способ получения события на открытие дочерних окон. То есть, есть скрип, отрабатывающий открытие любых окон, дает имя процесса окна, но нужно так же отследить открытие дочерних окон в этом процессе. Например, открывается окно «Сетевые подключения» — получаем событие и имя процесса explorer.exe. Далее, в этом же окне открываются свойства какого нибудь подключения, но это окно уже дочернее и нужно получить на него событие. Вот имеющийся скрипт события по основному окну: Код: Global Const $HSHELL_WINDOWCREATED = 1 Global Const $HSHELL_WINDOWACTIVATED = 4; Global Const $HWND_MESSAGE = -3 Global $bHook = 1 $hGui = GUICreate("", 10, 10, -1, 0,-1,-1,$HWND_MESSAGE) GUIRegisterMsg(_WinAPI_RegisterWindowMessage("SHELLHOOK"), "HookProc") ShellHookWindow($hGui, $bHook) Func hookproc($hwnd, $msg, $wparam, $lparam); функция отрабатывает при открытии любого окна Switch $wparam Case $hshell_windowcreated $Win = _processgetname(WinGetProcess($lparam)); получаем имя процесса открытого окна. Case $hshell_windowactivated EndSwitch EndFunc ;процедура перехвата дочерних окон, может быть как-то так: Func hookproc("??????") $Win = _processgetname(WinGetProcess($lparam)); получаем имя процесса открытого дочернего окна EndFunc |
|