|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.07.2011, 13:35 | #1 | |
Пользователь
Регистрация: 01.12.2009
Сообщений: 46
|
[Вопрос]Как найти процесс приложения зная его заголовок?
Собственно вопрос думаю понятен, но для наглядно отпишусь подробнее...
Нашел я окно через FindWindow(); теперь как мне найти его процесс зная его заголовок? Нашел такую функцию Function GetWindowThreadProcessId(hwnd:HWND; var dwprocessId:Cardinal):Cardinal; но многие пишут что: Цитата:
|
|
10.07.2011, 14:02 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
вообщето процессы это и есть потоки. Каждый процесс это поток. По этому GetWindowThreadProcessId, почти всегда вернёт тебе id основного потока к оторому прнадлежит окно. За исключением того случая, что окно будет динамически созданно в другом потоке. Тогда придётся повозится... крутить список процессов, искать к какому процессу принадлежит поток, чей id был вернут функцией.
|
10.07.2011, 14:52 | #3 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
GetWindowThreadProcessId Function про второй параметр функции. Цитата:
так что ТС, не читайте что пишут многие, а читайте сначало оффициальную документацию по функции. применять так: Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
10.07.2011, 15:52 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Код:
И тот же пример: Что вернёт функция если окно будет создано в том же TThread? Вернёт id потока или процесса к которому принадлежит поток? |
10.07.2011, 15:59 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
10.07.2011, 16:03 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
С консольками да=) Но в случае ТС это исключено. Берёт же он hwnd откуда-то
|
10.07.2011, 16:12 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
А правильный ответ ему уже был дан.
I'm learning to live...
|
||
10.07.2011, 17:57 | #8 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
так как она всегда возвращает id потока, в котором создано окно. а вот через второй параметр вернет id процесса. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
10.07.2011, 18:43 | #9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
спасибо, за ещё немного пищи для ума. +++
|
10.07.2011, 21:17 | #10 |
Форумчанин
Регистрация: 06.01.2008
Сообщений: 180
|
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как убить процесс зная его имя? | One.Love | Win Api | 14 | 18.02.2012 14:31 |
найти файл зная лишь часть его имени | DeDoK | Общие вопросы Delphi | 3 | 16.12.2010 21:06 |
Как найти название класса процеса зная его handle? | Dazz | Win Api | 3 | 16.03.2010 11:35 |
Как зная хендл окна закрыть его | SeRhy | Общие вопросы Delphi | 1 | 24.08.2008 11:02 |
Как завершить процесс, зная его имя | Никки | Win Api | 6 | 14.01.2008 14:04 |