Как найти поток?
Добавлено: 06 фев 2005, 03:49
Мне нужно найти в системе такой поток нужного мне процесса, который имеет окно(очередь сообщений). Перебрать(toolhelp API) все процессы и найти нужный я могу, перебрать все потоки найденного процесса я то же могу, но как узнать, что какой-то поток имеет окно? Мне это нужно для того, чтобы повесить Hook на определенный процесс, а SetWindowsHookEx принимает в качестве параметра ThreadId. Может быть можно повесить хук на любой из найденных потоков? Или на все?
Может быть лучше перебирать все окна, для каждого определять имя процесса(exe'шник) и если нужный, то определять для такого окна хэндл потока? Если так, то подскажите последавательность API-функций, которые надо вызвать, только учтите, что:
- это должно работать начиная с Win98;
- окно может быть с любым заголовком;
- окно может быть в трее.
И напоследок: если я повешу хук на одно окно процесса, то в другом окне этого процесса вызов нужной мне функции будет перехватываться? А если процесс будет создавать новые окна, то в них будет работать hook? Или мне надо будет вешать hook на CreateWindow? В общем разъясните кто знает!
Может быть лучше перебирать все окна, для каждого определять имя процесса(exe'шник) и если нужный, то определять для такого окна хэндл потока? Если так, то подскажите последавательность API-функций, которые надо вызвать, только учтите, что:
- это должно работать начиная с Win98;
- окно может быть с любым заголовком;
- окно может быть в трее.
И напоследок: если я повешу хук на одно окно процесса, то в другом окне этого процесса вызов нужной мне функции будет перехватываться? А если процесс будет создавать новые окна, то в них будет работать hook? Или мне надо будет вешать hook на CreateWindow? В общем разъясните кто знает!