Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 19:52   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию Перехват создания окон одного процесса

Доброго времени суток!

Как можно перехватывать создания окон в рамках 1 процесса?

Допустим, есть поток TThread который вешается на процесс и ждёт завершения процесса.

Как получить все окна созданные именно этим процессом и перехватывать новые, создаваемые, процессом окна?


Как можно решить задачку?
Человек_Борща вне форума Ответить с цитированием
Старый 09.12.2011, 20:22   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну тогда по таймеру проходите с EnumWindows и проверяйте соответствие нужному процессу.
только поток тут не очень хорошая идея.
или вам что-то более важное чем просто список окон?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.12.2011, 20:52   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

По этому и ищу другие способы.
т.к. программ за которыми наблюдение ведётся - не определённое количество.

И на каждую из них приходится таймер с EnumWindows(т.к. действия разные для окон) - нет это плохая идея. Слишком высокая нагрузка.

Может стоит посмотреть на хуки? Можно что-то по поводу этого сказать?
Человек_Борща вне форума Ответить с цитированием
Старый 09.12.2011, 20:59   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можете и хук поставить(вида WH_CALLWNDPROC наверно).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.12.2011, 21:57   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ловушку в сам процесс ставить или глобальную. Если глобальную, то не сильно ли будет тормозить систему?
И как обмениваться данными с этой DLL?
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список окон процесса Johnson Общие вопросы Delphi 2 15.08.2011 20:31
Система упрощенного создания окон (S.C.O.W.) Alex Cones Свободное общение 57 20.11.2010 10:38
Динамический TMediaPlayer, в котором от одного до четырех окон nick17 Общие вопросы Delphi 5 19.10.2010 12:08
Перехват создания сокета Horus92 Работа с сетью в Delphi 0 27.06.2010 12:50
Перехват создания файла DOS vamp8 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 08.06.2010 21:56