Форум: "Начинающим";
Текущий архив: 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