Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 16.04.2011, 18:47   #1
bro
Пользователь
 
Аватар для bro
 
Регистрация: 02.12.2010
Сообщений: 29
По умолчанию EnumThreadWndProc не вызывается

PHP код:
program Project2;

{
$APPTYPE CONSOLE}

uses
  SysUtils
WindowsDialogs;

function 
EnumThreadWndProc(hwndTHandlelParamLPARAM): Booleanstdcall;
begin
 ShowMessage
('Я волосатая сосиска');
 
Result:=true;
end;

begin
  EnumThreadWindows
(5636, @EnumThreadWndProc0);
end
5636 это ID блокнота, подсмотренный в диспетчере задач. Проблема: 'волосатая сосиска' не выскакивает. Почему?

Последний раз редактировалось bro; 16.04.2011 в 18:53.
bro вне форума Ответить с цитированием
Старый 16.04.2011, 20:01   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

1.
Цитата:
'волосатая сосиска'
По умнее придумать не могли?
2. Читали?
3. Смотрим это и в Callback'e проверяем Title нужного вам окна.
BOBAH13 вне форума Ответить с цитированием
Старый 16.04.2011, 20:15   #3
bro
Пользователь
 
Аватар для bro
 
Регистрация: 02.12.2010
Сообщений: 29
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
1. По умнее придумать не могли?
2. Читали?
3. Смотрим это и в Callback'e проверяем Title нужного вам окна.
Извините, просто человеком-сосиской подрабатываю =)
Да, мсдн курил, если GetCurrentThreadId вместо ID блокнота подставить, то работает. А зачем проверять title?
Моя догадка: может быть, нужен не ID процесса, а ID потока в процессе?
EnumWindows continues until the last top-level window is enumerated <...> - у меня, как я понимаю, перебирается единственное окно блокнота и на этом всё заканчивается, так почему же тогда callback-функция не отрабатывает ни разу?
bro вне форума Ответить с цитированием
Старый 16.04.2011, 20:21   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> нужен не ID процесса, а ID потока в процессе?

браво! русским же языком написано в мсдн:

The identifier of the thread whose windows are to be enumerated.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 16.04.2011, 23:00   #5
bro
Пользователь
 
Аватар для bro
 
Регистрация: 02.12.2010
Сообщений: 29
По умолчанию

Спасибо всем! =)
bro вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Откуда вызывается генератор запросов NatNiM Общие вопросы Delphi 1 06.08.2010 09:10
из тела проги не вызывается функция vimpel Общие вопросы C/C++ 2 29.03.2010 23:18
Функция не вызывается с другого Unita Seran4ek Общие вопросы Delphi 7 03.01.2010 19:55
не вызывается Paint в borland 5 primeplus Общие вопросы C/C++ 4 08.08.2009 08:14
Не вызывается процедура. Что не так? KingMaker Общие вопросы Delphi 4 12.04.2009 00:59


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS