【发布时间】:2009-03-12 08:51:55
【问题描述】:
我有这个问题想要解决。让我们认为我们有这种情况。我们有一个notepad.exe 实例正在运行。我运行另一个notepad.exe。现在我想杀死后者。我该怎么做?
如果我能够知道最后一个 notepad.exe 的 pid,那么我可以杀死它。但是如何获取上次打开程序的PID呢?
另一种方法是给每个应用程序一个唯一的图像名称。据我所知,这似乎是不可能的,因为图像名称是硬编码到二进制文件中的。
有什么想法吗?
附:正如您已经注意到的,这一切都在 Windows 中。
【问题讨论】:
-
您可以控制记事本进程的启动吗?
-
是的,我是。我正在用 C++ 编写一个程序,它跟踪正在运行的进程,如果有任何冻结崩溃,该程序会终止(如果需要)并重新启动它们。所有这些观看的节目都有相同的图像名称。
-
但是如果你自己启动它们并使用 CreateProcess 那么你已经从 dwProcessId 字段中知道了 PID...?
-
我使用 system() 函数启动它。