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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

icq: 371250184
По умолчанию 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
Адрес: Los Angeles, USA
Сообщений: 3,708
Репутация: 1457
По умолчанию

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

icq: 371250184
По умолчанию

Цитата:
Сообщение от 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
Репутация: 868
По умолчанию

> нужен не 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
Репутация: 10

icq: 371250184
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Откуда вызывается генератор запросов 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


13:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.