首页 > 解决方案 > 当同一个程序打开两次时,如何使用 C++ 杀死一个程序?

问题描述

比如说,我有一个名为“A.exe”的 C++ 程序,如果有人打开它两次,该程序应该杀死它,然后作为一个单独的程序运行。

规则:它应该被那个程序杀死(而不是使用任何其他程序)。

我的问题是如果我使用

system("taskkill /im A.exe /t");

但它也会自杀。

标签: c++windows

解决方案


使用命名互斥锁,它一次只能由一个线程持有,在程序开始时创建它,如果您无法获取互斥锁,那是因为您的程序的另一个副本已经在运行(并且拥有互斥体),然后您可以安全地终止程序(无需调用任何外部程序,依靠寻找特定的文件名等)


推荐阅读