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