Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

handle [D7, XP]


Rust ©   (2008-04-13 14:52:00) 

как можно по handle определить местоположение запускаемого файла?


Leonid Troyanovsky   (2008-04-13 19:26:00) [1]


> Rust   (13.04.08 19:13) [10]

> не скажите... мы его по хендлу отслеживаем..и это не обязательно
> окно..

Чем дальше в лес, тем толще партизаны.

Кого "его", и как это: "по хендлу отслеживаем".

> я подумал, так бы меня не поняли...

Сравним
"как можно по handle определить местоположение запускаемого файла?"
vs
"как по хендлу окна узнать имя файла екзешника, его породившего?"

Ну, дык, где понятней?

--
Regards, LVT.


Rust   (2008-04-13 19:13:00) [2]

не скажите... мы его по хендлу отслеживаем..и это не обязательно окно..

> как по хендлу окна узнать имя файла екзешника, его породившего.

я подумал, так бы меня не поняли...
но все равно, спасибо


Leonid Troyanovsky   (2008-04-13 19:09:00) [3]


> Rust   (13.04.08 18:55) [8]

> спасибо, уже нашел выход..

Ну, примерно это мы и подозревали, хе-хе.

Т.е., никакого хендла процесса и не было, а
вопрос д.б. звучать примерно так:
как по хендлу окна узнать имя файла екзешника, его породившего.

--
Regards, LVT.


Rust   (2008-04-13 18:55:00) [4]

спасибо, уже нашел выход..
t:=findwindow(nil,'calculator');
if t<>0 then
begin
 showmessage('Found!');
 GetWindowThreadProcessId(t, @Pid);
 tt:=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pid);
 mm.dwSize:=SizeOf(TModuleEntry32);
 if Module32First(tt,mm) then showmessage(strpas(mm.szExePath));

/////////////
 Pid: Cardinal;
 mm: TModuleEntry32;


Leonid Troyanovsky   (2008-04-13 18:39:00) [5]


> Rust   (13.04.08 17:26) [4]

> работает в рамках только своего процесса. вот.. другого
> решения нет?

http://www.rsdn.ru/Forum/?mid=18652;)
Хотя, нет, конечно же GetModuleFileNameEx, GetModuleBaseName &etc.

--
Regards, LVT.


palva   (2008-04-13 18:22:00) [6]


> у меня эти функции работали и меня устраивали

конечно, это были те функции которые я назвал в [3], а не те, которые упомянуты в [4]


palva   (2008-04-13 18:18:00) [7]

О другом решении я даже не думал, поскольку у меня эти функции работали и меня устраивали. Я искал процессы, выполняющие определенный вирусный файл, находил их и убивал.

Допускаю, что я неправильно понял ваш вопрос.


Rust   (2008-04-13 17:26:00) [8]

хм.. погуглил, оказалось, что >getmodulefilename как и GetModuleHandle работает в рамках только своего процесса. вот.. другого решения нет?


palva   (2008-04-13 15:46:00) [9]

Используйте функции
EnumProcessModules
GetModuleFileNameEx
Выберите среди найденных модулей файл с расширением exe. Скорее всего, такой будет один.


Rust   (2008-04-13 15:29:00) [10]

ну.. есть процесс. нужно найти, откуда она запущена?
например "c:\windows\calc.exe"


Leonid Troyanovsky   (2008-04-13 15:20:00) [11]


> Rust   (13.04.08 14:52)  

> как можно по handle определить местоположение запускаемого
> файла?

Потрудитесь излагать ваши мысли яснее.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо