时间:2021-05-19
流程:
1、在程序初始化的时候创建互斥量
2、检测互斥量返回的错误代码,看是否已存在这个互斥量
3、若已存在相同的互斥量,则释放创建的互斥句柄,并复位互斥量,然后,退出该程序
具体代码如下:
复制代码 代码如下:
//创建互斥量
HANDLE m_hMutex = CreateMutex(NULL, FALSE, _T("D3GPhoneDlg"));
// 检查错误代码
if (GetLastError() == ERROR_ALREADY_EXISTS){
// 如果已有互斥量存在则释放句柄并复位互斥量
CloseHandle(m_hMutex);
m_hMutex = NULL;
::PostMessageW(HWND_BROADCAST, WM_D3GPHONEDLG_MSG, 1, 2);// 通知已打开的程序,激活窗口
// 程序退出
CDialog::OnCancel();
}
// *** 【EOF】防止程序创建多个实例 ***
这段代码在wince 的MFC程序中测试通过,放到程序的OnInitDialog()函数中。
大家在测试的时候,可以先把激活窗口的那句注释掉
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
防止程序运行多个实例的方法有多种,如:通过使用互斥量和进程名等.而我想要实现的是:在程序运行多个实例时激活的是第一个实例,使其获得焦点,并在前端显示.主要用到两
本文和大家讲一下如何使用C#来创建系统中只能有该程序的一个实例运行。要实现程序的互斥,通常有下面几种方式,下面用C#语言来实现:方法一:使用线程互斥变量.通过定
本文实例讲述了C#简单实现防止多个程序运行的方法。分享给大家供大家参考,具体如下://////应用程序的主入口点。///[STAThread]staticvoi
本文实例讲述了Java互斥锁。分享给大家供大家参考。具体分析如下:互斥锁,常常用于多个线程访问独占式资源,比如多个线程同时写一个文件,虽然互斥访问方式不够高效,
本文实例讲述了DevExpress实现TreeList节点互斥的方法,具体实现方法如下所示:主要功能代码如下://////节点互斥同步///说明///eg://