恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

任务管理器中右键菜单,“结束进程树”菜单的实现

  • 首页
  • 资讯中心
  • /
  • 任务管理器中右键菜单,“结束进程树”菜单的实现

相关资讯

微信聊天记录导出与备份:用留痕把对话存成年度报告 2026/10/11 4:37:01
游戏闪退真相:虚拟内存陷阱揭秘 2026/10/11 4:32:01
Spring Boot高校就业信息管理系统:从设计到部署全攻略 2026/10/11 4:32:01

最新资讯

多智能体非中心化安全控制:DMPC实战落地指南
Matlab风功率预测误差分析实战:指标选型、脚本实现与工程应用
彭大帅的AI运维助手实战案例 5 · 新接手的服务器,先让 AI 摸底
Node.js异步调用短信API:从同步阻塞到事件循环的工程化实践
AnyPS5跨端串流与输入兼容技术解析:延迟优化与手柄适配实战
PostgreSQL 12 Windows 下 PostGIS 3.4.2 离线部署与避坑指南

今日推荐

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

任务管理器中右键菜单,“结束进程树”菜单的实现

发布时间:2026/10/11 4:37:01
任务管理器中右键菜单,“结束进程树”菜单的实现 分析了WIN 7“任务管理器”的“结束任务”菜单的实现其实也是简单的结束进程只是多加检测是否是核心进程并检测是否为16位程序并当前系统是否32位的如果是的用相关APIVDMTerminateTaskWOW。如果是64位的系统当前要结束的进程是16位的直接返回ERROR_INVALID_PARAMETER。“任务管理器”内部是查询自已保存的自定义结构的进程信息数组。所以结束进程他也不用实时查询进程信息。都是查询他保存的数组指针。“任务管理器”内部结束进程等操作都有一个参数:CreateTime : LONGLONG, 通过对比这个时间来区分相同PID的不同进程。MyQuerySystemInformation 是 ntQuerySystemInformation 调用我们为了单独实现出来简单一些我直接查询进程信息function MyKillAllChildrenProcess(const dwTaskPid, dwProcessId : DWORD; const pSystemProcesses : PSYSTEM_PROCESS_INFORMATION; LCreateTime : LONGLONG; var StrError : WideString) : Boolean;vardwNewProcessId : DWORD;newCreateTime : LONGLONG;pSystemProcesses2 : PSYSTEM_PROCESS_INFORMATION;beginResult:False;pSystemProcesses2:pSystemProcesses;while True dobeginwith pSystemProcesses2^ dobegin// 父 PID 等于要结束的进程 IDif (InheritedFromUniqueProcessId dwProcessId) and (UniqueProcessId dwProcessId) and (LCreateTime CreateTime.QuadPart) thenbegindwNewProcessId:UniqueProcessId;newCreateTime:CreateTime.QuadPart;MyKillAllChildrenProcess(dwTaskPid, dwNewProcessId, pSystemProcesses, newCreateTime, StrError);if (dwNewProcessId dwTaskPid) thenbeginResult:MyTerminateProcessEx(dwNewProcessId, StrError);MyAddDebugInfo(结束进程树子进程 PID: IntToStr(dwNewProcessId) 操作 C_FailOrSuccess[Result]);end;end;if (NextEntryOffset 0) thenbeginInc(ULONG(pSystemProcesses2), NextEntryOffset);end else Break;end;end;end;function MyRecursiveKillProcess(const dwProcessId : DWORD; LCreateTime : ULONGLONG; var StrError : WideString) : Boolean;varpSystemProcesses, pSystemProcesses2 : PSYSTEM_PROCESS_INFORMATION;dwQueryProcessIsEnd, dwTaskPid : DWORD;beginResult:False;if (not MyQuerySystemInformation(SystemProcessInformation, Pointer(pSystemProcesses))) thenbeginExit;end;StrError:;pSystemProcesses2:pSystemProcesses;//dwTaskPid 是任务管理器PID 用于最后才结束自已dwTaskPid:MyGetCurrentProcessId; // GetCurrentProcessId 的功能内部实现whileTruedobeginif (dwProcessId pSystemProcesses2^.UniqueProcessId) and (LCreateTime pSystemProcesses2^.CreateTime.QuadPartthenbeginMyKillAllChildrenProcess(dwTaskPid, dwProcessId, pSystemProcesses, LCreateTime, StrError);break;end;if (pSystemProcesses2^.NextEntryOffset 0) thenbeginInc(ULONG(pSystemProcesses2), pSystemProcesses2^.NextEntryOffset);end else Break;end;RtlFreeHeap(GetProcessHeap, 0, pSystemProcesses);Result:MyTerminateProcessEX(dwProcessId, StrError); // 各种TerminateProcess 相关实现。MyAddDebugInfo(结束进程树PID: IntToStr(dwProcessId) 操作 C_FailOrSuccess[Result]);end;

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号