![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 01.12.2009
Сообщений: 46
|
![]()
Собственно вопрос думаю понятен, но для наглядно отпишусь подробнее...
Нашел я окно через FindWindow(); теперь как мне найти его процесс зная его заголовок? Нашел такую функцию Function GetWindowThreadProcessId(hwnd:HWND; var dwprocessId:Cardinal):Cardinal; но многие пишут что: Цитата:
|
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
вообщето процессы это и есть потоки. Каждый процесс это поток. По этому GetWindowThreadProcessId, почти всегда вернёт тебе id основного потока к оторому прнадлежит окно. За исключением того случая, что окно будет динамически созданно в другом потоке. Тогда придётся повозится... крутить список процессов, искать к какому процессу принадлежит поток, чей id был вернут функцией.
|
![]() |
![]() |
![]() |
#3 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Цитата:
GetWindowThreadProcessId Function про второй параметр функции. Цитата:
так что ТС, не читайте что пишут многие, а читайте сначало оффициальную документацию по функции. применять так: Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Код:
И тот же пример: Что вернёт функция если окно будет создано в том же TThread? Вернёт id потока или процесса к которому принадлежит поток? |
![]() |
![]() |
![]() |
#5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
С консольками да=) Но в случае ТС это исключено. Берёт же он hwnd откуда-то
![]() |
![]() |
![]() |
![]() |
#7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]() Цитата:
![]() А правильный ответ ему уже был дан.
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
так как она всегда возвращает id потока, в котором создано окно. а вот через второй параметр вернет id процесса. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
спасибо, за ещё немного пищи для ума. +++
|
![]() |
![]() |
![]() |
#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 |