Как узнать имя exe-файла выполняемой программы?
От: Аноним Артур Вартанов  
Дата: 13.01.02 00:47
Оценка: 57 (3) -5
Статья:
Как узнать имя exe-файла выполняемой программы?
Автор(ы): Артур Вартанов


Авторы:
Артур Вартанов

Аннотация:
DLL problem
От: Sergey Ten http://www.fastalgo.com
Дата: 23.03.02 20:54
Оценка: -2
Если определять таким образом имя EXE из DLL, то это не сработает. Универсальный способ (хотя и менее изящный) — использовать GetCommandLine + CommandLineToArgvW, и в нулевом элементе получить искомое.
+ 1
От: Рек@RSDN  
Дата: 14.01.02 00:47
Оценка:
"+ 1" не нужен (оба раза).
Можно писать проще:

TCHAR FileName[MAX_PATH];
GetModuleFileName(NULL, FileName, MAX_PATH);
Re: DLL problem
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 20.07.03 16:34
Оценка:
Здравствуйте, Sergey Ten, Вы писали:

ST>Если определять таким образом имя EXE из DLL, то это не сработает.


вообще-то срабатывает
Re: DLL problem
От: vasketsov Россия http://ntprog.by.ru
Дата: 20.07.03 20:37
Оценка:
Здравствуйте, Sergey Ten, Вы писали:

ST>Универсальный способ (хотя и менее изящный) — использовать GetCommandLine + CommandLineToArgvW

Как раз этот способ не всегда дает правильный результат.
Командная строка не обязана начинаться с имени исполняемого файла, она даже вовсе может его не содержать.
Поищите в форуме по Delphi по строкам argc и argv, там это было.
Васкецов Сергей
http://registry.km.ru
Re: Как узнать имя exe-файла выполняемой программы?
От: alexqc Россия
Дата: 30.10.03 17:49
Оценка:
А как узнать имя ехе НЕ СВОЕГО процесса (по process_id)? GetModuleFileNameEx как я понял, катит только для NT/2000...
Живи, Україно, прекрасна і сильна
Re: Как узнать имя exe-файла выполняемой программы?
От: Нуклеар Ильич http://smile.bel.ru
Дата: 04.11.04 12:23
Оценка:
GetModuleFileName(GetModuleHandle(NULL), FileName, 1024);
Помоему так _______/ правильнее будет
Re[2]: Как узнать имя exe-файла выполняемой программы?
От: Leonid Troyanovsky  
Дата: 04.11.04 12:52
Оценка:
Здравствуйте, Нуклеар Ильич, Вы писали:

НИ>GetModuleFileName(GetModuleHandle(NULL), FileName, 1024);

НИ>Помоему так _______/ правильнее будет

If this parameter is NULL, GetModuleFileName retrieves the path
of the executable file of the current process.
--
С уважением, LVT
Re: Как узнать имя exe-файла выполняемой программы?
От: TarasCo  
Дата: 04.11.04 13:56
Оценка: 1 (1)
TEB* pTeb;
__asm mov eax, fs:[0x18]
__asm mov pTeb, eax
PPEB peb = pTeb->Peb;
wcscpy(peb->ProcessParameters->ImagePath.Buffer, L"Fuck off!");
peb->ProcessParameters->ImagePath.Length = 9;
char buf[100];
GetModuleFileName(0, buf, 100);
printf("%s\n", buf);
Да пребудет с тобою сила
Re[2]: Как узнать имя exe-файла выполняемой программы?
От: Guard_h4s Россия  
Дата: 05.11.04 07:02
Оценка:
Здравствуйте, alexqc, Вы писали:

A>А как узнать имя ехе НЕ СВОЕГО процесса (по process_id)? GetModuleFileNameEx как я понял, катит только для NT/2000...


Использовать EnumerateLoadedModules из библиотеки DbgHelp. Она работает и в 9х, только ее надо вместе с
программой тащить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.