怎样知道程序已经在运行

2025-10-19 21:55:08

1、要想保证只有一个程序实例在运行,可以利用内核对象——互斥对象做到这一点。

当程序启动时,调用 CreateMutex 创建一个互斥对象。此时,如果已经有一个程序实例运行,即互斥对象已经被创建,则不再创建新的互斥对象,而是打开已经创建的互斥对象,同时 GetLastError 会返回 ERROR_ALREADY_EXISTS;

否则,如果没有程序实例在运行,则创建新的互斥对象并运行程序。

怎样知道程序已经在运行

2、以上的程序逻辑可用下面的图示来表示。

怎样知道程序已经在运行

1、在窗口的回调函数中,我们添加以下代码。首先,调用 CreateMutex 创建一个互斥对象。

怎样知道程序已经在运行

2、若互斥对象已经存在,则打开,不创建新的互斥对象。

怎样知道程序已经在运行

3、此时,做一些清理提示工作。

怎样知道程序已经在运行

4、最后,结束当前进程(即只允许一个程序实例在运行)。

怎样知道程序已经在运行

5、下图是程序运行效果。当多次运行该程序时,会保证有且只有一个程序实例在运行,同时弹出对话框提示。

怎样知道程序已经在运行

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢