您的位置:首页 > 编程语言

Windows 底下根据一个进程的名字杀死一个进程的代码

2017-05-17 18:19 363 查看
知道一个正在运行的进程的名字,比如计算器: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; //找不到进程返回0
end;

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: