首页 > 代码库 > delphi杀进程的两种方式
delphi杀进程的两种方式
第一种:比较简单,根据标题,找到窗口,再找到进程,杀死进程
[delphi] view plain copy
- procedure KillProgram(WindowTitle : string);
- const
- PROCESS_TERMINATE = $0001;
- var
- ProcessHandle : THandle;
- ProcessID: Integer;
- TheWindow : HWND;
- begin
- TheWindow := FindWindow(nil, PChar(WindowTitle));
- GetWindowThreadProcessID(TheWindow, @ProcessID);
- ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
- TerminateProcess(ProcessHandle,4);
- end;
第二种:复杂一点,不过可获取的信息更多,其他功能的时候可以参考一下
[delphi] view plain copy
- 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);
- 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;
- CloseHandle(FSnapshotHandle);
- end;
另,word也可以根据标题结束进程,word的标题的规则是application的title + "-" + window的title
http://blog.csdn.net/youthon/article/details/7247874
delphi杀进程的两种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。