首页 / MYSQL / 通过进程句柄关闭某个程序的进程
通过进程句柄关闭某个程序的进程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了通过进程句柄关闭某个程序的进程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2127字,纯文字阅读大概需要4分钟。
内容图文
![通过进程句柄关闭某个程序的进程](/upload/InfoBanner/zyjiaocheng/530/5150e1666368496287e240f7afc3a096.jpg)
下面是具体代码 总共分为两个过程 EnumProcTree 主要用来枚举句柄树 KillProc 关闭 某个 程序 的 进程 procedure EnumProcTree(const PID: DWORD; out PID_Tree: TPIDTree); procedure ListTree(RootPID: DWORD); var hP_Root: THandle; Found: Boolean; Pn:
下面是具体代码
总共分为两个过程
EnumProcTree 主要用来枚举句柄树
KillProc 关闭某个程序的进程
procedure EnumProcTree(const PID: DWORD;
out PID_Tree: TPIDTree);
procedure ListTree(RootPID: DWORD);
var
hP_Root: THandle;
Found: Boolean;
Pn: TProcesseNtry32;
hSnap: THandle;
begin
hP_Root := OpenProcess(PROCESS_ALL_ACCESS, False, RootPID);
if hP_Root <> 0 then
begin
CloseHandle(hP_Root);
SetLength(PID_Tree, Length(PID_Tree) + 1);
PID_Tree[Length(PID_Tree) - 1] := RootPID;
hSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
Pn.dwSize := SizeOf(TProcesseNtry32);
Found := Process32First(hSnap, Pn);
while Found do
begin
if RootPID = Pn.th32ParentProcessID then
begin
ListTree(Pn.th32ProcessID);
end;
Found := Process32Next(hSnap, Pn);
end;
CloseHandle(hSnap);
end;
end;
begin
SetLength(PID_Tree, 0);
ListTree(PID);
end;
KillProc过程的参数:
PID需要结束的句柄ID
Killchild是否结束子进程
如果KillChild是True,那么首先枚举所有的子句柄,然后一次性都关闭
procedure KillProc(PID: DWORD; Killchild: Boolean = True; const ExitCode: Cardinal = 0);
var
i: integer;
hProc: THandle;
PID_Tree: TPIDTree;
begin
if Killchild then
begin
EnumProcTree(PID, PID_Tree);
for i := High(PID_Tree) downto Low(PID_Tree) do
begin
if (PID_Tree[i] <> 0) then
begin
hProc := OpenProcess(PROCESS_ALL_ACCESS, False, PID_Tree[i]);
if hProc <> 0 then
begin
TerminateProcess(hProc, ExitCode);
CloseHandle(hProc);
end;
end;
end;
end
else
begin
hProc := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
if hProc <> 0 then
begin
TerminateProcess(hProc, ExitCode);
CloseHandle(hProc);
end;
end;
end;
使用代码
KillProc(lpProcessInformation.dwProcessId, True, Result);
lpProcessInformation.dwProcessId 进程的句柄ID
True结束子进程
本文地址:http://www.xszlo.com/article/2012-12-24/7746.html,转发请保留这个地址,谢谢
内容总结
以上是互联网集市为您收集整理的通过进程句柄关闭某个程序的进程全部内容,希望文章能够帮你解决通过进程句柄关闭某个程序的进程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。