Возникла необходимость помониторить зависания приложения (многооконное).
При зависании получать список всех окон, принадлежащий этому процессу.
Почему-то такой код для попытки получить имя процесса:
работает, как видно из комментариев в коде, немного не так как я ожидал...
В общем вопрос "Что не так и почему?"
При зависании получать список всех окон, принадлежащий этому процессу.
Почему-то такой код для попытки получить имя процесса:
Код:
#include <WinAPIProc.au3>
Opt("WintitleMatchMode", 2)
Local $hWnd = WinWait ("Не отвечает", "", 0)
; Возвращает "AutoIT3.exe" вместо нужного процесса
Local $ProcName = _WinAPI_GetProcessName (_WinAPI_GetProcessID ( $hWnd ))
; Если окно "Не отвечает" - возвращает "dwm.exe" - Диспетчер окон рабочего стола, вместо нужного процесса
; Если приложение не "висит" - возвращает то что нужно
Local $ProcName = _WinAPI_GetProcessName (WinGetProcess ( $hWnd )) ;
MsgBox ("", "Сообщение", "Процесс:" & @CRLF & @CRLF & $ProcName)
работает, как видно из комментариев в коде, немного не так как я ожидал...
В общем вопрос "Что не так и почему?"