如何获得系统目前运行的所有进程的名称和ID(Windows NT4)(100分)

  • 主题发起人 主题发起人 meckyhan
  • 开始时间 开始时间
不知道你是要自己写程序来获取呢还是只是要知道这些进程
如果只是需要知道的话,VC6.0好像提供一个这样的工具,spy++
如果是自己写程序的话,去查查api,应该有这样的函数的,找到了
别忘了告诉偶一声呕,谢谢
 
我做了一个,email?
 
获得进程列表,并终止 Excel 进程
procedure TForm1.Button1Click(Sender: TObject);
var
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
Ret : BOOL;
ProcessID : integer;
s:string;
begin
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
Ret:=Process32First(FSnapshotHandle,FProcessEntry32);
Memo1.clear;
while Ret do
begin
Memo1.lines.add(FProcessEntry32.szExeFile);
s:=ExtractFileName(FProcessEntry32.szExeFile);
if s='EXCEL.EXE' then
begin
ProcessID:=FProcessEntry32.th32ProcessID;
TerminateProcess(OpenProcess(PROCESS_TERMINATE,false,ProcessID),1);
s:='';
end;
Ret:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;

 
注意引用TlHelp32单元,

procedure GetTaskList(St: TStrings);
var SnapShot: THandle;
a: TProcessEntry32;
begin
st.Clear;
SnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
a.dwSize:=Sizeof(TProcessEntry32);
Process32First(SnapShot,a);
repeat
st.Add(IntToHex(a.th32ProcessID,8)+'='+a.szExeFile);
until not Process32Next(SnapShot,a);
CloseHandle(SnapShot);
end;
 
http://www.datacn.com/acdown/list.asp?id=16
远程控制,
里面有显示本地和远程的进程,同时可以杀进程
 
ToolHelp能用于WinNT4.0吗?真是的。
用EnumProcess
 
后退
顶部