不知道为什么,我调用Process32First(h1,@pe) 老是不成功!
var
PE : ProcessEntry32 ;
h1 : THandle ;
begin
H1 := CreateToolhelp32Snapshot( TH32CS_SNAPHEAPLIST and
TH32CS_SNAPPROCESS and
TH32CS_SNAPTHREAD and
TH32CS_SNAPMODULE ,0 );
if h1 = -1 then
begin
const
TH32CS_SNAPHEAPLIST = $1 ;
TH32CS_SNAPPROCESS = $2 ;
TH32CS_SNAPTHREAD = $4 ;
TH32CS_SNAPMODULE = $8 ;
type
LPPROCESSENTRY32 = ^ PROCESSENTRY32 ;
PROCESSENTRY32 = Record
dwSize : DWORD ;
cntUsage : DWORD ;
th32ProcessID : DWORD ;
th32DefaultHeapID : DWORD ;
th32ModuleID : DWORD ;
cntThreads : DWORD ;
th32ParentProcessID : DWORD ;
pcPriClassBase : DWord ;
dwFlags : DWORD ;
szExeFile : Array[0..MAX_PATH-1 ] of Char ;
end;
.....
...
memoLog.Lines.Add('Fail to CreateToolHelp32Snapshot') ;
CloseHandle(h1);
Exit;
end;
memoLog.Lines.Add('success to open');
pe.dwSize := SizeOf(ProcessEntry32);
if Process32First(h1,@pe) = False then
begin
memoLog.Lines.Add('Fail to use Process32First ! ') ;
end;
closeHandle(h1);