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

Вниз

DLL   Найти похожие ветки 

 
Alex   (2002-07-07 18:56) [0]

Как получить список загруженных DLL?


 
Eugene Lachinov   (2002-07-07 22:04) [1]

uses
PSApi, SysUtils, TlHelp32;

procedure GetModuleList(List : TStrings; ProcessID : THandle);
var
i : Integer;
hProcess, hSnapshot : THandle;
hModules : array of DWORD;
ME32 : TModuleEntry32;
cRequest, cModules : DWORD;
szModuleName : array[0..MAX_PATH] of Char;
begin
List.Clear;
if Win32Platform = VER_PLATFORM_WIN32_NT then begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or
PROCESS_VM_READ, False, ProcessID);
if hProcess <> 0 then try
cRequest := 96;
repeat
SetLength(hModules, cRequest div 4);
if EnumProcessModules(hProcess, Pointer(hModules), cRequest, cModules) then
Break;
if cModules < cRequest then Break else cRequest := cRequest shl 1
until False;
cModules := cModules div 4;
for i := 0 to cModules - 1 do
if GetModuleBaseName(hProcess, hModules[i], szModuleName, MAX_PATH) > 0 then
List.Add(szModuleName)
finally
CloseHandle(hProcess)
end
end else begin
hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
if hSnapshot > 0 then try
ME32.dwSize := SizeOf(ME32);
if Module32First(hSnapshot, ME32) then repeat
List.Add(ME32.szModule);
until not Module32Next(hSnapshot, ME32)
finally
CloseHandle(hSnapshot)
end
end
end;

Пример использования:
GetModuleList(ListBox1.Items, GetCurrentProcessId)

Правда тут будут не только DLL :-)




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

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

Наверх




Память: 0.45 MB
Время: 0.008 c
1-58205
Jesuit
2002-07-06 03:10
2002.07.18
Подскажите плиз как сравнить два разных времени ?


1-58121
Andrey
2002-07-08 20:40
2002.07.18
Программное нажатик клавиш


7-58345
San188
2002-04-29 01:47
2002.07.18
Как перегрузить крмп?


1-58102
Goblinus
2002-07-06 22:37
2002.07.18
MDI


1-58222
Goblinus
2002-07-07 15:50
2002.07.18
Шрифты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский