gpt4 book ai didi

c++ - 有效地杀死一个windows进程

转载 作者:可可西里 更新时间:2023-11-01 09:56:01 28 4
gpt4 key购买 nike

我正在编写一个 C++ QT 桌面应用程序,旨在在 Windows 操作系统上运行。
此应用程序应枚举所有正在运行的进程,并将终止特定进程(通过名称识别)。我知道有两种方法可以做到这一点:

  1. 使用 Windows API。
  2. 使用tasklist命令获取进程,使用taskkill结束进程。

在代码风格、效率和性能方面哪个选项更好?还是有第三种选择?

最佳答案

效率和性能不应该让你担心,IMO。您可能不会每秒杀死 1000 个进程,所以如果一个进程花费 10 毫秒而另一个进程花费 100 毫秒,我怀疑没有人会关心。

因此,选择其中一个的主要理由是易于编程和维护。用于枚举进程的 API 并不是最简单的,但是您可以在网络上找到很多示例(例如 here )。使用任务列表需要获取输出并对其进行解析。

出于以下原因,我会选择 API:

  1. 如果操作失败,您可以获得更多信息。您会确切地知道问题出在哪里,是什么。
  2. 我不确定 tasklisttaskkill 是否保证在每台 Windows 机器上都有。它们确实随操作系统一起提供,但有人可能认为它们扩大了攻击面或其他任何东西,然后将它们移除。
  3. 解析文本很容易出错。例如,我不知道 tasklist 的输出是否取决于操作系统区域设置。你呢?

关于c++ - 有效地杀死一个windows进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339709/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com