![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как зная ID процесса получить хендл окна этого процесса [D7, XP]
бульдозер © (2009-04-30 00:37:00)всем привет
я запускаю стороннее прилщжение функцыуй
if not CreateProcess(nil,Pchar(Fappfile+' '+fcmd),nil,nil,False,0,nil,nil,si,pi )
then
begin
Ferror:='Не удалось запустить';
Exit;
end;
она возвращает ид процесса как зная этот ид получить хендл окна этого приложения.
Юрий Зотов (2009-04-30 09:35:00) [1]Или, если точно известно, что приложение однопоточное, то EnumThreadWindows
Юрий Зотов (2009-04-30 09:32:00) [2]Наверное, самое простое: EnumWindows + GetWindowThreadProcessID
Германн (2009-04-30 03:04:00) [3]
> > Германн © (30.04.09 02:41) [10]
> > Всё-таки в ВалЕнках.
> > Или в Питере и
> > "валенки" пишутся иначе?
> > :)
>
> Не знаю как у вас в столице - но у нас проверочное слово
> для валянки = парадное, булка хлеба и головная боль ;)
>
Знать, я ошибся. :(
шпалоукладчик (2009-04-30 02:54:00) [4]
> Игорь Шевченко © (30.04.09 02:31) [8]
> Но тут такой момент - и диспетчер задач и таскбар у проводника они все пляшут от окон, а не от "имеются процессы а теперь мы для каждого окно найдем и покажем"
>
> Да и зачем такое "окно процесса" искать тоже непонятно.
Думаю потому, что он этот процес только что сам родил черезCreateProcessно какой хендл система выделила для главного окна - непонятно...
> Германн © (30.04.09 02:41) [10]
> Всё-таки в ВалЕнках.
> Или в Питере и
> "валенки" пишутся иначе?
> :)
Не знаю как у вас в столице - но у нас проверочное слово для валянки = парадное, булка хлеба и головная боль ;)
Германн (2009-04-30 02:47:00) [5]
> шпалоукладчик (30.04.09 02:24) [7]
>
>
> > Игорь Шевченко © (30.04.09 02:21) [6]
А я рад, что самый грамотный Питерский автор вновь проявил себя!
Германн (2009-04-30 02:41:00) [6]
> шпалоукладчик (30.04.09 02:24) [7]
Всё-таки в ВалЕнках.
Или в Питере и
"валенки" пишутся иначе?
:)
Игорь Шевченко (2009-04-30 02:33:00) [7]
> как зная этот ид получить хендл окна этого приложения
а потом приложение оказывается консольным...
Игорь Шевченко (2009-04-30 02:31:00) [8]шпалоукладчик (30.04.09 02:24) [7]
Но тут такой момент - и диспетчер задач и таскбар у проводника они все пляшут от окон, а не от "имеются процессы а теперь мы для каждого окно найдем и покажем"
Да и зачем такое "окно процесса" искать тоже непонятно.
шпалоукладчик (2009-04-30 02:24:00) [9]
> Игорь Шевченко © (30.04.09 02:21) [6]
> И их показывает диспетчер задач на вкладке "приложения" :)
Ой - если бы мы полагались только на диспетчер задач - то до сих пор ходили бы в валянках под гору за несколько километров :)
Игорь Шевченко (2009-04-30 02:21:00) [10]
> В некоторых случаях можно принять допущение что они есть
И их показывает диспетчер задач на вкладке "приложения" :)
Германн (2009-04-30 01:57:00) [11]
> Игорь Шевченко © (30.04.09 01:35) [3]
>
> У ПРОЦЕССА НЕТ ОКОН
А зачем кричать?
Игорь, это не в твоём стиле!
шпалоукладчик (2009-04-30 01:41:00) [12]
> Игорь Шевченко © (30.04.09 01:35) [3]
> У ПРОЦЕССА НЕТ ОКОН
Вы абсолютно правы! Но давайте не будем так сильно придираться к строительной технике :)
В некоторых случаях можно принять допущение что они есть, к примеру если главная нить процесса порождает одно "главное" окно - то в таком случае можно узнать его хендл через ID процесса.
Что впрочем и указал в ссылке на тему уважаемый DVM © (30.04.09 01:03) [2]
Игорь Шевченко (2009-04-30 01:35:00) [13]У ПРОЦЕССА НЕТ ОКОН
Германн (2009-04-30 01:03:00) [14]
> как зная этот ид получить хендл окна этого приложения.
Какого окна? Их как правило более одного!
DVM (2009-04-30 01:03:00) [15]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1231256834&n=5