| 查找一個進程,並殺掉這個進程(KillProcess) |
|
|
|
|
|
uses TlHelp32;
function FindProcess(AFileName: string): boolean; var hSnapshot: THandle;//用于获得进程列表 lppe: TProcessEntry32;//用于查找进程 Found: Boolean;//用于判断进程遍历是否完成 KillHandle: THandle;//用于杀死进程 begin Result :=False; hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获得系统进程列表 lppe.dwSize := SizeOf(TProcessEntry32);//在调用Process32First API之前,需要初始化lppe记录的大小 Found := Process32First(hSnapshot, lppe);//将进程列表的第一个进程信息读入ppe记录中 while Found do begin if ((UpperCase(ExtractFileName(lppe.szExeFile)) = UpperCase(AFileName)) or (UpperCase(lppe.szExeFile ) = UpperCase(AFileName))) then begin {if MsShow('发现打开Excel,是否将其关闭?', 2) = 6 then begin //由于我的操作系统是xp,所以在调用TerminateProcess API之前 //我必须先获得关闭进程的权限,如果操作系统是NT[1] [2] [3] 下一页
|
|
|
|
|