Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Вниз

Путь   Найти похожие ветки 

 
Ivolg ©   (2007-07-17 14:47) [0]

Как можно узнать адресс файла, зная имя процесса ?


 
Сергей М. ©   (2007-07-17 14:48) [1]


> адресс файла


Эт что за зверь ?


 
Dib@zol ©   (2007-07-17 14:49) [2]


> Эт что за зверь ?

c:\windows\system32\ntoskrnl.exe - пример.


 
Сергей М. ©   (2007-07-17 14:50) [3]


> Dib@zol ©   (17.07.07 14:49) [2]


Ты видимо тоже не в состоянии произнести это страшное слово - полный путь к исполняемому файлу процесса ?)


 
Dib@zol ©   (2007-07-17 14:51) [4]

Нее, просто телепатор свой глюкавый фклучил...


 
Dib@zol ©   (2007-07-17 14:53) [5]

Удалено модератором


 
Сергей М. ©   (2007-07-17 14:53) [6]


> телепатор свой глюкавый


Я вижу.

По "пчелке".


 
Anatoly Podgoretsky ©   (2007-07-17 14:56) [7]

> Dib@zol  (17.07.2007 14:53:05)  [5]

Так форум же для начинающих, а он то к этому какое отношение имеет?


 
Юрий Зотов ©   (2007-07-17 16:32) [8]

> Ivolg ©   (17.07.07 14:47)

У файла нет адреса. А у процесса нет имени.

Наверное, стоит уточнить вопрос?


 
Ivolg ©   (2007-07-17 19:28) [9]

Сори, неправельно написал )))) Мне необходимо узнать полный путь к .exe"шнику, зная только его имя процесса !


 
Ivolg ©   (2007-07-17 19:34) [10]

Сори, неправельно написал )))) Мне необходимо узнать полный путь к .exe"шнику, зная только его имя процесса ! Можно с помощью функции
GetModuleFileName(), тогда как получить хендл процесса, используемый в первом параметре или я ошибаюсь ?


 
Pont   (2007-07-17 20:27) [11]

Ivolg
FindWindow
Попробуй это для поиска дескриптора окна. Чтобы найти экзешник надо в GetModuleFileName() один из параметров указать 0.


 
Ivolg ©   (2007-07-17 20:44) [12]

Если я не ошибаюсь, функция FindWindow(); ищет дискриптор окна только по его заголовку.


 
Anatoly Podgoretsky ©   (2007-07-17 20:55) [13]

> Ivolg  (17.07.2007 20:44:12)  [12]

Ошибаешься


 
Ivolg ©   (2007-07-19 18:33) [14]

Может кто подскажет как правильно использовать функцию GetModuleFileName() ?


 
Pont   (2007-07-19 19:07) [15]

http://www.netcode.ru/cpp/zert995.htm


 
Инс ©   (2007-07-19 20:11) [16]

GetModuleFileName работает не с хэндлом процесса, а с хэндлом исполняемого модуля - разные вещи.

Теперь что касается ответа на твой вопрос. Насколько я правильно телепатировал, у тебя есть только имя файла чужого процесса без пути, тебе нужно узнать путь. Так?


 
MsGuns ©   (2007-07-19 20:35) [17]

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

;)


 
Ivolg ©   (2007-07-19 22:09) [18]

Инс ©   (19.07.07 20:11) [16]

GetModuleFileName работает не с хэндлом процесса, а с хэндлом исполняемого модуля - разные вещи.

Теперь что касается ответа на твой вопрос. Насколько я правильно телепатировал, у тебя есть только имя файла чужого процесса без пути, тебе нужно узнать путь. Так?


Да. У меня есть только имя процесса, мне нужно по этому имени процесса, определить местонахождение файла. Например, имя процесса Project1.exe, после определения должно показать путь файла, C:\Program Files\Borland\Delphi7\Projects\Project1.exe.


 
Юрий Зотов ©   (2007-07-19 22:43) [19]

> Ivolg ©   (19.07.07 22:09) [18]

1. Project1.exe - это не имя процесса. Еще раз - у процессов имен нет. У них есть хэндлы, приоритеты и еще куча всего, но имен у них нет.

2. Если Вы хотите получить правильный ответ на какой-то вопрос, то и вопрос, видимо, нужно тоже формулировать правильно. По крайней мере, не употребляя терминов, смысл которых Вам непонятен. Иначе только вводите всех в заблуждение и шансы на правильный ответ, соответственно, падают.

3. Уточните вопрос - Вам нужно определить полный путь к файлу Project1.exe из САМОЙ программы Project1.exe, или из какой-то ДРУГОЙ программы?


 
Инс ©   (2007-07-20 09:20) [20]

Если программа чужая, то

1. С помощью ToolHelp получить список процессов


 
Инс ©   (2007-07-20 09:23) [21]

Ой, рано нажал отправить

2. Найти процесс, чей exename равен искомому
3. Запомнить идентификатор этого процесса
4. Открыть процесс с правами PROCESS_QUERY_INFORMATION
5. С помощью GetModuleFileNameEx и дескриптора, полученного в п.4. получить полный путь

Если программа твоя - Application.ExeName

Дерзай


 
Ivolg ©   (2007-07-20 10:42) [22]

Инс ©   (20.07.07 09:23) [21]
Спасибо за помощь ! Буду пробовать !

Юрий Зотов ©   (19.07.07 22:43) [19]

Имеется список процессов, такой же как и в "Диспетчере задач" (вкладка "Процессы"), и нужно получить путь до файла процесса. Например запустили мы некую прогу Test.exe из папки C:\Windows\, прога загрузилась в память и
появилась в списке процессов, в данном случае имя программы соответствует имени процесса Test.exe, который отображен в списке процессов. Нужно определить по названию процесса, какой файл был запущен и где он находится. Понятно, что заранее неизвестно откуда программа была запущена. Вот вся суть задачи.


 
Юрий Зотов ©   (2007-07-20 12:26) [23]

> Ivolg ©   (20.07.07 10:42) [22]

Сразу бы так - простыми словами и без всяких терминов. Сколько бы времени сэкономили.

Но снова - "название процесса". Ну нет у процесса никаких названий, понимаете? Не-ту.

Ответ - см. [20] и [21].

Но вообще, в ТАКОЙ постановке эта задача ОДНОЗНАЧНОГО решения не имеет. Ведь никто не мешает запустить хоть сотню программ Test.exe из РАЗНЫХ папок - и если известно только имя файла Test.exe, то что в таком случае делать? Выдавать первый найденный процесс? Выдавать их все? Еще что-то?

Если список процессов Вы строите сами, то есть простое и точное решение - запоминать в этом же списке не только имена файлов, а еще и ID процессов. Тогда ничего не придется искать (поскольку ID прoцесса просто сразу берется из списка, а по нему сразу же определяется полное имя его исполнимого файла).



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.042 c
2-1184903356
barin
2007-07-20 07:49
2007.08.19
тип данных


2-1185278706
vitv
2007-07-24 16:05
2007.08.19
создание компонент


3-1178306803
IMHO
2007-05-04 23:26
2007.08.19
Delphi and ESE


3-1178088046
merko
2007-05-02 10:40
2007.08.19
Как определить тип данных


5-1160287104
o_serg
2006-10-08 09:58
2007.08.19
Компонент для распаковку/упаковки *.JAR





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский