通过进程名或模块名来杀进程

unit KillProcess;

interface

uses
Windows, SysUtils, Forms, Controls, StdCtrls, Classes, TlHelp32;

function KillByProcessNameOrModuleName(ProcessNameOrModuleName: string):Boolean;
function KillByProcessName(ProcessName: string):Boolean;

implementation

function KillByProcessNameOrModuleName(ProcessNameOrModuleName: string):Boolean;
function ModuleEnum(processid:Dword):boolean;
var
ModuleList :Thandle;
pm :TMODULEENTRY32;
foundModule:boolean;
begin
Result:
=False;
ModuleList :
= CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,processID);
pm.dwSize:
=sizeof(TMODULEENTRY32);
foundModule:
=module32first(ModuleList,pm);
while integer(foundModule)<>0 do begin
if pos(UpperCase(pm.szModule),UpperCase(ProcessNameOrModuleName))>0 then begin
Result:
=True;
exit;
end;
foundModule:
=Module32Next(ModuleList,pm);
end;
closehandle(ModuleList);
end;
var
Found: boolean;
HProcess,HSnapshot: THandle;
appe: TProcessEntry32;
begin
Result :
= False;
HSnapshot :
= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
appe.dwSize :
= SizeOf(appe);
Found :
= Process32First(HSnapshot, appe);
while Integer(Found) <> 0do begin
if ModuleEnum(appe.th32ProcessID) then begin
try
HProcess :
= OpenProcess(PROCESS_ALL_ACCESS, True, appe.th32ProcessID);
TerminateProcess(HProcess,
0);
Result :
= True;
except
Result :
= False;
end;
end;
Found :
= Process32Next(HSnapshot, appe);
end;
CloseHandle(HSnapshot);
end;

function KillByProcessName(ProcessName: string):Boolean;
var
s:
string;
Found: boolean;
HProcess,HSnapshot: THandle;
appe: TProcessEntry32;
begin
Result :
= False;
HSnapshot :
= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
appe.dwSize :
= SizeOf(appe);
Found :
= Process32First(HSnapshot, appe);
while Integer(Found) <> 0do begin
s :
= appe.szExeFile;
if UpperCase(s) = UpperCase(ProcessName) then begin
try
HProcess :
= OpenProcess(PROCESS_ALL_ACCESS, True, appe.th32ProcessID);
TerminateProcess(HProcess,
0);
Result :
= True;
except
Result :
= False;
end;
end;
Found :
= Process32Next(HSnapshot, appe);
end;
CloseHandle(HSnapshot);
end;

end.

转载于:https://www.cnblogs.com/jxgxy/archive/2008/11/25/1340570.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值