Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6451
Последний выпуск: 19.06.2015

EnumWindows не перечисляет окно игры

456
18 февраля 2013 года
QWERYTY
595 / / 25.03.2012
Пытаюсь найти хендлы окон зная идентификатор процесса. Можно было конечно проще, но мне не известно имя и класс окна.
Их я конечно могу получить всякими программами по типу WndInfo или Spy++, но это не решение, вдруг эта информация поменяется и программа окажется неработоспособной.

Код по нажатию кнопки извлекает PId игры и пытается перечислить все окна принадлежащие процессу:
 
Код:
GamePId := FindProcess(PWideChar('Game.exe'));  // FindProcess самопальная но работает. Проверенно
EnumWindows(@EnumWindowsProc, INTEGER(Self)); // Вот должно быть перечисление всех окон верхнего уровня(в том числе пишут что и не видимых)
// Там ещё есть проверка не равен ли GamePId нулю, но я убрал все не существенные детали
Вот функция обратного вызова для EnumWindows:
Код:
function EnumWindowsProc(hwnd: CARDINAL; lParam: INTEGER): BOOL;
var
PId: CARDINAL;
begin
   Pid := 0;
   GetWindowThreadProcessId(hwnd, @PId);
   if Pid = 0 then  

   ShowMessage(IntToStr(GetLastError));
 
   Result := TRUE;
end;

В результате я получаю ошибку 1400, что типа не верный хендл.
Получается что функция EnumWindows перечисляет что угодно только не хендлы окон, т.к. сообщений вылазит много.

Может чтото не дочитал про перечисления, хотя по моему весь мсдн вычитал на эту тему.
Кто работал с окошками помогите понять в чём проблема.
456
18 февраля 2013 года
QWERYTY
595 / / 25.03.2012
Всегда везде ставил(т.к. большую часть кода пишу в длл), а тут по какой то причине не поставил stdcall у функции обратного вызова.
Ну и началось.
456
18 февраля 2013 года
QWERYTY
595 / / 25.03.2012
Как обычно забыл указать что всё это безобразие происходит в XP SP3

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог