本文整理自网络,侵删。
知道一个正在运行的进程的名字,比如计算器:Calc.exe 杀死它的代码:
USES TLHelp32; //必须 Users 这个,FindProcessID 函数需要用到它。
{$R *.dfm}
function FindProcessID(s:string):integer;var found,find:boolean; FSnapshotHandle:tHANDLE; lppe:TProcessEntry32;begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //CreateToolhelp32Snapshot函数得到进程快照 Find:=False; lppe.dwSize := Sizeof(lppe); //初始化 found := Process32First(FSnapshotHandle, lppe); //Process32First 得到一个系统快照里第一个进程的信息 while found do begin if LowerCase(ExtractFileName(lppe.szExeFile))=LowerCase(s) then begin Result:=lppe.th32ProcessID; //找到进程返回ID find:=true; CloseHandle(FSnapshotHandle); exit; end; found := Process32Next(FSnapshotHandle, lppe); end; CloseHandle(FSnapshotHandle); if find=False then Result:=0; //找不到进程返回0end;
procedure TForm2.Button1Click(Sender: TObject);var ProH: THandle; ProcID: DWord;begin ProcID := FindProcessID(Edit1.Text);
ProH := OpenProcess(PROCESS_ALL_ACCESS, True, ProcID); TerminateProcess(ProH, 0);end;
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>