[本文摘自BBS, 不能保证绝对的正确, 仅供参考,请小心测试]
Win95/98下监控运行的其他程序
参照下面这段程序,就搞定了啦。^-^ ================================== uses ... TLHelp32, ...
type TForm1 = class(TForm) ... end;
var Form1: TForm1; l : Tlist; ////返回的东东在"L"这个TList中。
type TProcessInfo = Record ExeFile : String; ProcessID : DWORD; end; pProcessInfo = ^TProcessInfo;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); var p : pProcessInfo; i : integer; ContinueLoop:BOOL; var FSnapshotHandle:THandle; FProcessEntry32:TProcessEntry32; begin l := TList.Create; l.Clear; FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); FProcessEntry32.dwSize:=Sizeof(FProcessEntry32); ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32); while integer(ContinueLoop)< > 0 do begin New(p); p.ExeFile := FProcessEntry32.szExeFile; p.ProcessID := FProcessEntry32.th32ProcessID; l.Add(p); ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32); end; end;
procedure TForm1.FormDestroy(Sender: TObject); var p : pProcessInfo; i : integer; begin With l do for i := Count - 1 DownTo 0 do begin p := items[i]; Dispose(p); Delete(i); end; end;
... end.
|