![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
!ПОЛНЫЙ! путь к .EXE через PID или его HANDLE - как? [Win2k]
Grundic © (2004-10-19 20:27:00)Есть проблема - надо убивать процессы, запущенные, допустим из C:\DANGEROUS\ и разрешать все другие, окромя тех, чей экзе-файл размером, например, 10000 KB. Или что-то в этом роде.
Вобщем, как получить путь к исходному exe-шнику по его процессу? szExeName (кажется так) не пойдет - он дает только имя приложения, не указывая - откуда оно родом.
ОЧЧЕНЬ надо. Заранее спасибо. (:
Grundic (2004-10-21 21:03:00) [1]
> а то, что некие экземпляры пытаются самоутвердиться, используя
> на серьезном форуме такой жаргон
А Вы, типа, "отцы"?
PS: самоутверждатьсяи не пытаюсь, но разговор о себе, как о полном лошпенделе огорчает.
panov (2004-10-21 18:47:00) [2]>Digitman
>Игорь Шевченко
Хватит флеймить.
VMcL (2004-10-21 18:44:00) [3]Развели тут оффтоп...
%)
Игорь Шевченко (2004-10-21 17:04:00) [4]Digitman © (21.10.04 15:19) [28]
По мне так лучше дедами :) Мха я не замечал, а то, что некие экземпляры пытаются самоутвердиться, используя на серьезном форуме такой жаргон, говорит об их профессиональном уровне. Нам вроде самоутверждаться здесь ни к чему, а ? :))
Digitman (2004-10-21 15:19:00) [5]
> Игорь Шевченко © (21.10.04 15:07) [27]
да фих его знает !
мож сейчас и "круто" "перцем" быть) ...
прохлопаем мы сейчас с тобой ушами, видишь ли, ан может и вовремя было бы "перцем" назваться ?) А ? ... Игорь ? ... Как оно тобой думается ? ... То ль в "перцы" податься, то ль остаться как есть ? .. Дедами замшелыми ?))))
Игорь Шевченко (2004-10-21 15:07:00) [6]Digitman © (21.10.04 14:19) [26]
Ну так мы ж тобой точно не должны :)
Digitman (2004-10-21 14:19:00) [7]
> Игорь Шевченко © (21.10.04 13:21) [24]
ты - "перец" ?
я - нет ..
> Grundic (21.10.04 13:23) [25]
> 1я Заповедь: "Работает - не трогай!" :)
оно и не работало толком
видимость "работы" - да, была ...
Grundic (2004-10-21 13:23:00) [8]
> считаешь, что кто-то должен за тебя разбираться ?
1я Заповедь: "Работает - не трогай!" :)
Пока что это мне не нужно. Хотя, я согласен, что я, возможно, не прав...
Игорь Шевченко (2004-10-21 13:21:00) [9]Digitman © (21.10.04 12:35) [23]
> считаешь, что кто-то должен за тебя разбираться ?
Перцы должны.
Digitman (2004-10-21 12:35:00) [10]
> Не стал разбираться
> опять же, не разбирался - почему
считаешь, что кто-то должен за тебя разбираться ?
p.s.
использование для енумерации процессов ToolHelp-ф-ций под НТ ничем не оправдано... для этого есть PSAPI-функции или NtQuerySystemInformation()
WL (2004-10-21 12:28:00) [11]> Игорь Шевченко © (21.10.04 11:42) [21]
Спасибо за функцию, пока воспользуюсь ей
Игорь Шевченко (2004-10-21 11:42:00) [12]
> А никто не подскажет, можно ли получить всю командную строку,
> т.е. имя exe-шника и параметры запуска?
http://www.schevchenko.net.ru/SRC/EnumFunctions_60.zip
модуль main.pas, функция HSGetWindowCommandLine
Grundic (2004-10-21 11:41:00) [13]Перцы! Нашел баг у себя в коде!!! Не стал разбираться - что да как.
Вот изменение процедуры:
Вместо
if hProcess<>0 then
поставил
if (hProcess<>0) and (s<>'System') then
При дебагинге под Дельфей это не важно, но при "автономном" запуске (опять же, не разбирался - почему) это райзило ОШИБКУ чтения памяти...
WL (2004-10-21 11:34:00) [14]Большое спасибо, буду пробовать
VMcL (2004-10-21 11:23:00) [15]> где почитать об этом...
Можно здесь:
http://podgoretsky.com/ftp/Docs/Classics/Richter/
VMcL (2004-10-21 11:22:00) [16]>> WL (21.10.04 11:07) [16]
> А можно немного поподробнее, как вызвать GetCommandLine из чужого процесса
Внедрить DLL посредством SetWindowsHookEx или CreateRemoteThread. Тогда эта DLL будет работать в ВАП нужного процесса и там можно смело вызвать GetCommandLine. Далее с помощью любого удобного механизма межпроцессного взаимодействия передать полученную строку в базовый процесс. Ну и последнее: отключить Hook или остановить Remote Thread.
WL (2004-10-21 11:07:00) [17]Спасибо за советы, попробую через ReadProcessMemory, хотя хотелось бы чего-то более "цивилизованного".
> DeadMeat © (21.10.04 00:44) [14]
А можно немного поподробнее, как вызвать GetCommandLine из чужого процесса, или ссылочку, где почитать об этом...
VMcL (2004-10-21 07:41:00) [18]>> DeadMeat © (21.10.04 00:44) [14]
В принципе можно и через ReadProcessMemory.
DeadMeat (2004-10-21 00:44:00) [19]Насколько я знаю, GetCommandLine
Но не все так просто...
У Рихтера есть примерчик.
---
...Death Is Only The Begining...
Alex_Petr (2004-10-20 18:24:00) [20]ReadProcessMemory ?