您好,请教一个关于关闭其他进程的问题(50分)

  • 主题发起人 主题发起人 活在来生的鱼
  • 开始时间 开始时间

活在来生的鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
您好,想实现如下功能:

点击按钮,可以关闭系统中正在运行的所有程序,并且可以将托盘中加载的程序也强行退出 ;

请问如何实现 ?

谢谢
 
这是其核心,源程序可以到http://www.playicq.com/dispdoc.php?t=&id=2725下载
procedure TForm1.FormShow(Sender: TObject);
var
Lppe: TProcessEntry32;
Found: boolean;
Handle: THandle;
s:string;
begin
ListBox1.clear;
//设定快照集的名柄
Handle:= CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
//找到第一个进程
lppe.dwSize:=Sizeof(TProcessEntry32); //这一行非常重要
Found:= Process32First(Handle,Lppe);
while Found do
begin
s:=Lppe.szExeFile;
ListBox1.items.Add(s);
//继续找下一个进程
Found:= Process32Next(Handle,Lppe);
end;
end;

procedure TForm1.suiButton1Click(Sender: TObject);
var
Found: BOOL;
HSnapshot, HProcess: THandle;
Lppe: TProcessEntry32;
begin
HSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
Lppe.dwSize:=Sizeof(Lppe);
Found:=Process32First(HSnapshot,Lppe);
while Found do
begin
try
if Lppe.szExeFile=ListBox1.Items.Strings[ListBox1.itemindex] then
begin
HProcess:=OpenProcess(PROCESS_ALL_ACCESS, FALSE, Lppe.th32ProcessID);
//终止进程
TerminateProcess(HProcess,0);
ListBox1.Items.Delete(ListBox1.itemindex);
exit;
end;
except end;
Found:=Process32Next(HSnapshot,Lppe);
end;
end;
 
谢谢:) 我试试
 
后退
顶部