【发布时间】:2013-08-12 09:50:00
【问题描述】:
我需要确保我的 C++ 应用程序只有 1 个实例正在运行。
如何使用 Win API;
检索有关我当前应用程序的信息?
GetCurrentProcess()会给我一个关于我的应用程序的 HANDLE,我如何检索有关它的信息为用户检索所有正在运行的进程的列表?
EnumProcesses()给出了一个列表,但似乎需要一个预先分配的缓冲区,那么我如何知道当前有多少进程正在运行?我需要将我的服务器的 exe 名称与正在运行的进程进行比较,如果发现多个则引发错误
注意:我不能使用任何 boost 库,并且我对使用类似帖子中看到的 mutex 不感兴趣。
【问题讨论】:
-
“我对使用互斥锁不感兴趣”....但是为什么呢?
-
解释原因需要很长时间,但我需要一个非互斥体解决方案。
-
然后使用事件,或任何共享>对象方法。
-
“如何在不使用巧克力的情况下制作巧克力蛋糕?” - 这……很有挑战性。
-
嗯,成分替代是关于经验丰富的厨师(烹饪 StackExchange)的一个有效问题,那么为什么不在这里呢? ;) 当然,同样的附带条件也适用:说明根本原因,这样我们的替换就不会遇到同样的问题。