![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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.