檩条和系杆:关于编程

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 13:55:45
想编一个程序 找出我指定的进程的PID(唯一进程识别码) 然后用cmd 里面的 ntsd -c q -p PID 杀掉这个进程 同时要杀两个 请问怎么办

用VB VC 还是别的什么方法 请大家帮帮忙

我给出delphi的做法

uses TLHELP32

function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result:= 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
FProcessEntry32.dwSize
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))=UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile)=UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;

要杀几个就调用几次,需要给出进程的名字
比如说要杀QQ的进程就用
KillTask('QQ.exe');