procedure Kill; var Pn: TProcesseNtry32; sHandle: THandle; H: Hwnd; Found: Boolean; begin {Kill explorer} sHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0); Found:= Process32First(sHandle, Pn); while Found do begin if UpperCase(ExtractFileName(Pn.szExeFile)) = 'EXPLORER.EXE' then begin H := OpenProcess(PROCESS_ALL_ACCESS, True, Pn.th32ProcessID); TerminateProcess(H ,0); end; Found := Process32Next(sHandle, Pn); end; end;//Win98/NT下通杀Explore.exe, 一杀即死
不过,楼主为什么老要用这么挑逗的标题来提问?
第二个问题
1、取得系统当前进程快照
2、搜索当前进程列表,找出你所要的系统进程句柄
3、干掉该进程
说明:在很多进程防杀的技巧和重启进程的介绍中有此关于的记录
Delphi 开发人员指南一书中就有此介绍,在获取系统快照的介绍中
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/terminateprocess.asp
pProcess是进程ID
TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,pProcess),$FFFFFFFF);
var
Pn: TProcesseNtry32;
sHandle: THandle;
H: Hwnd;
Found: Boolean;
begin {Kill explorer}
sHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
Found:= Process32First(sHandle, Pn);
while Found do
begin
if UpperCase(ExtractFileName(Pn.szExeFile)) = 'EXPLORER.EXE' then
begin
H := OpenProcess(PROCESS_ALL_ACCESS, True, Pn.th32ProcessID);
TerminateProcess(H ,0);
end;
Found := Process32Next(sHandle, Pn);
end;
end;//Win98/NT下通杀Explore.exe, 一杀即死
自己写code就要很多行了