J
jxgxy
Unregistered / Unconfirmed
GUEST, unregistred user!
下面这个函数返回了进程列表
//----------------------------------------------------------------------------
//返回进程列表
function GetProcessList:TStringList;
var
ContinueLoop:Bool;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
ProcessList:TStringList;
begin
ProcessList := TStringList.Create;
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while ContinueLoop do
begin
ProcessList.Add(FProcessEntry32.sZExeFile);
Continueloop:=process32next(fsnapshothandle,fprocessentry32);
end;
Result := ProcessList;
end;
下面这个函数是根据进程id返回模块列表
//----------------------------------------------------------------------------
//根据进程id返回模块列表
function GetProcessModuleList(ProcessId:integer):TStringList;
var
modSnapShot: THandle;
mProcess: TMODULEENTRY32;
FProcessEntry32:TProcessEntry32;
ret: Bool;
ModuleList:TStringList;
begin
ModuleList := TStringList.Create;
modSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessId)
//模块快照
mProcess.dwSize := sizeof(TMODULEENTRY32)
//初始化TMODULEENTRY32结构大小
ret := module32first(modSnapShot, mProcess)
//第一个模块
while ret do begin
ModuleList.Add(mProcess.szModule);
ret := module32next(modSnapShot, mProcess)
//寻找下一个模块
end;
Result := ModuleList;
end;
我现在要做的是用一个for循环 将每一个进程的所有模块列表 添加到memo1中或stringlist中去,假如每个进程有10个模块,一共有20个进程,那么memo1中就有200个模块列表,请问这个for循环怎么写,或者是否有更为简捷的方法可以实现,为盼!
//----------------------------------------------------------------------------
//返回进程列表
function GetProcessList:TStringList;
var
ContinueLoop:Bool;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
ProcessList:TStringList;
begin
ProcessList := TStringList.Create;
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while ContinueLoop do
begin
ProcessList.Add(FProcessEntry32.sZExeFile);
Continueloop:=process32next(fsnapshothandle,fprocessentry32);
end;
Result := ProcessList;
end;
下面这个函数是根据进程id返回模块列表
//----------------------------------------------------------------------------
//根据进程id返回模块列表
function GetProcessModuleList(ProcessId:integer):TStringList;
var
modSnapShot: THandle;
mProcess: TMODULEENTRY32;
FProcessEntry32:TProcessEntry32;
ret: Bool;
ModuleList:TStringList;
begin
ModuleList := TStringList.Create;
modSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessId)
//模块快照
mProcess.dwSize := sizeof(TMODULEENTRY32)
//初始化TMODULEENTRY32结构大小
ret := module32first(modSnapShot, mProcess)
//第一个模块
while ret do begin
ModuleList.Add(mProcess.szModule);
ret := module32next(modSnapShot, mProcess)
//寻找下一个模块
end;
Result := ModuleList;
end;
我现在要做的是用一个for循环 将每一个进程的所有模块列表 添加到memo1中或stringlist中去,假如每个进程有10个模块,一共有20个进程,那么memo1中就有200个模块列表,请问这个for循环怎么写,或者是否有更为简捷的方法可以实现,为盼!