Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Module32First всегда возвращает первой информацию о... [D7, 95/98, XP]


tmp ©   (2007-10-18 22:25:00) 

...главном .exe модуле? Ну, например:

procedure TForm1.Button1Click(Sender: TObject);
var
 hModuleSnap: THandle;
 me32: MODULEENTRY32;
begin
 me32.dwSize := SizeOf(MODULEENTRY32);
 hModuleSnap := CreateToolHelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessID);
 if hModuleSnap <> INVALID_HANDLE_VALUE then
 begin
   if Module32First(hModuleSnap, me32) then
     MessageBox(0, me32.szExePath, 'My module path', 0);
   CloseHandle(hModuleSnap);
 end;
end;

Возвратит полный путь текущего .exe. Не может случиться так, что первым будет какая-нибудь .dll, загруженная
в адр. прост. тек. процесса?
В MSDN ничего про это не нашел.
P.S Заранее благодарен за ответ.


Skyle   (2007-10-19 07:10:00) [1]

CreateToolhelp32Snapshot
Takes a snapshot of the specified processes, as well as the heaps, modules, and threads used by these processes.


A snapshot that includes the module list for a specified process contains information about each module, executable file, or dynamic-link library (DLL), used by the specified process. You can retrieve information for the first module in the list by using the Module32First function.

Могу сделать вывод, что первым будет модуль - владелец первого потока процесса.


Наверх

Титульная страница Поиск, карта сайта Написать письмо