实现应用程序的单实例运行有很多种方式。如果是有窗口的应用程序,可以通过FindWindow()查找窗口来确认是否已有同名窗口存在。如果是无窗口的应用程序,可以用互斥体等内核对象实现。一般来说,在程序的入口处检查是否已有实例在运行。如果没有,则继续执行。如果有,则退出本次运行。基本流程如下图所示。 以互斥体实现的单实例参考代码如下。