![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли узнать, кто использует DLL [D7, XP]
Alex_C © (2007-12-18 16:09:00)Есть DLL. Ее используют несколько программ. Можно ли внутри DLL узнать, какая программа ее использует, в частности сделать это в
DLL_PROCESS_ATTACH
Надо для того, чтоб в зависимости от того, какая программа использует DLL данные считывались бы из разных Setup-файлов.
Т.е. типа такого:
procedure DLLEntryPoint(dwReason:DWord);
begin
case dwReason of
DLL_PROCESS_ATTACH: begin
if <чего-то> then SetupFile:= 'Setup1'
else SetupFile := 'Setup2'.
Понятно конечно, что можно сделать отдельно ф-цию типа InitSetupFile и в качестве параметра передавать имя файла, а вот по другому?
DiamondShark (2007-12-19 12:10:00) [1]
> Leonid Troyanovsky © (18.12.07 18:00) [4]
Вот враги!
МСДН апрель 2003:
hModule
[in] Handle to the module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path for the current module.
А тут
http://msdn2.microsoft.com/en-us/library/ms683197(VS.85).aspx
уже
retrieves the path of the executable file of the current process.
Alex_C (2007-12-18 18:50:00) [2]
> А толку?
Ну так это мне и надо было. GetModuleFileName - то что надо! Большое спасибо!
Leonid Troyanovsky (2007-12-18 18:00:00) [3]
> DiamondShark © (18.12.07 16:43) [3]
> А МСДН врёт?
Отнюдь, так и утверждает:
If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process.
--
Regards, LVT.
DiamondShark (2007-12-18 16:43:00) [4]
> Григорьев Антон © (18.12.07 16:24) [1]
А МСДН врёт?
DiamondShark (2007-12-18 16:32:00) [5]
> Можно ли внутри DLL узнать, какая программа ее использует
А что значит "какая программа"? Имя ехе-файла что-ли?
Это можно: GetModuleHandle и GetModuleFileName
А толку?
Григорьев Антон (2007-12-18 16:24:00) [6]Функция GetModuleFileName с параметром, равным 0, возвращает имя exe-файла, текущего процесса.