Как я могу проверить, есть ли у процесса графический интерфейс (без .NET)?

0

Я пытаюсь понять, какие процессы имеют графические интерфейсы. Я пытался использовать GetGuiResources, но некоторые из процессов имеют ресурсы GUI, но не имеют окна. Теперь я использую WaitForInputIdle - то же самое, некоторые из процессов готовы для ввода, но у них нет окна :( Как я могу проверить, имеет ли процесс графический интерфейс?

PS Я использую Python + ctypes, но пример на C++ или небольшое объяснение, что я должен использовать, будет достаточно :)

  • 0
    Какова ваша настоящая цель?
Теги:
ctypes

1 ответ

0
Лучший ответ

Если ваша цель - Windows, вы можете использовать Win32 API. Функция EnumWindows перечисляет дочерние окна, или же вы можете использовать EnumThreadWindows для перечисления только не-дочерних окон.

Надеюсь, это поможет вам.

  • 0
    Спасибо за ваш ответ. EnumWindows возвращает много дескрипторов. Мне нужно связать каждый дескриптор с текущим процессом, да? EnumThreadWindows - я должен получить все потоки, а затем проверить каждый поток, используя EnumThreadWindows, да?
  • 0
    Для EnumThreadWindows необходим идентификатор потока, связанный с окном. Вы можете использовать функцию EnumDesktopWindows, если вам нужны только процессы пользовательского интерфейса. Посмотрите, подходит ли оно вашему решению. Пример Не забудьте вернуть TRUE или FALSE в вашем обратном вызове :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню