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

Вниз

CeateToolHelp32SnapShot на NT работает?   Найти похожие ветки 

 
skywalker   (2002-02-14 18:59) [7]

Вот я сочинил какую функцию, но вне есть проблема, передавать
данные динамического массива вот таким пойнетром (@PIDs или @ModHndls) некоректо, может знает кто, как правильно это сделать?


function CheckOutExeNT(Exename:string):boolean;
type
TEnumProcesses=function(lpidProcess:LPDWORD; cb:DWORD; var cbNeeded:DWORD):BOOL stdcall;
TEnumProcessModules=function(hProcess:THandle; lphModule:LPDWORD; cb:DWORD; var lpcbNeeded:DWORD):BOOL;
TGetModuleFileNameExA=function(hProcess:THandle; hModule:HMODULE;lpFilename:PAnsiChar; nSize:DWORD):DWORD stdcall;
var
EnumProcesses:TEnumProcesses;
EnumProcessModules:TEnumProcessModules;
GetModuleFileNameExA:TGetModuleFileNameExA;
hPSAPI:THandle;
PIDs:array of dword;
pbNeeded:dword;
ProcHandle:THandle;
ModHndls:array of THandle;
mbNeeded:dword;
Counter,Counter1:longword;
ModuleName:string;
begin
Result:=false;
hPSAPI:=LoadLibrary("PSAPI.dll");
if hPSAPI<32 then
begin
Result:=false;
Exit
end;
EnumProcesses:=GetProcAddress(hPSAPI, "EnumProcesses");
EnumProcessModules:=GetProcAddress(hPSAPI, "EnumProcessModules");
GetModuleFileNameExA:=GetProcAddress(hPSAPI, "GetModuleFileNameExA");

pbNeeded:=1004;
repeat
SetLength(PIDs,(pbNeeded div 4)+10)
until EnumProcesses(PIDs,Length(PIDs),pbNeeded)<>false;
for Counter:=0 to (pbNeeded div 4)-1 do
begin
ProcHandle:=OpenProcess(PROCESS_VM_READ,false,PIDs[Counter]);
mbNeeded:=1004;
repeat
SetLength(ModHndls,(mbNeeded div 4)+10)
until EnumProcessModules(ProcHandle,@ModHndls,Length(ModHndls),mbNeeded)<>false;
for Counter1:=0 to (mbNeeded div 4)-1 do
begin
SetLength(ModuleName,MAX_PATH);
GetModuleFileNameExA(ProcHandle,ModHndls[Counter],pchar(ModuleName),MAX_PATH);
if UpperCase(ExtractFileName(string(ModuleName)))=UpperCase(Exename) then
begin
Result:=true;
break
end
end;
CloseHandle(ProcHandle);
if Result then break
end
end;




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

Форум: "WinAPI";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
3-57609
KaPaT
2002-03-24 22:32
2002.04.18
Объясните такую штуку, пожалуйста


14-57859
ATLANTIDO
2002-03-10 16:02
2002.04.18
WinXP


1-57689
Caligula
2002-04-03 21:38
2002.04.18
Работа с файлами


1-57695
snoup
2002-04-07 21:49
2002.04.18
Как нарисовать что-нибудь на твоей форме?


1-57754
voland0
2002-04-05 12:37
2002.04.18
Помогите!!! onStartDrag в TDBGrid не наступает!!!





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