程序只运行一个是实例 .

简介:

#define UNIQE_NAME "{1AB792D6-EAF2-3267-9A84-9135681127A4}"
#define GIS_MSG "{D48CA993-4925-41cb-8F59-ABAAAFCEF797}"

const UINT ID_GIS_INSTANCE = ::RegisterWindowMessage(GIS_MSG); //注册消息

// 确保程序只有一个实例在运行
 m_hOneInstance = ::CreateMutex(NULL, FALSE, UNIQE_NAME);
 if (GetLastError() == ERROR_ALREADY_EXISTS )//如果存在前一个
 {
  //发送消息,激活实例
  DWORD dwRecipients = BSM_APPLICATIONS; 
  ::BroadcastSystemMessage(BSF_NOHANG, &dwRecipients,
   ID_GIS_INSTANCE, // registered window message
   0, 0);    // user defined parameters

  return FALSE;
 }

ON_REGISTERED_MESSAGE(ID_GIS_INSTANCE, OnGISInstance)
LRESULT CMainFrame::OnGISInstance(WPARAM wParam, LPARAM lParam)
{
 theApp.m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
 theApp.m_pMainWnd->SetForegroundWindow();

 ::AfxMessageBox("本程序已经有一个实例在运行了。");

 return 0;
}


本文转自莫水千流博客园博客,原文链接:http://www.cnblogs.com/zhoug2020/archive/2012/04/02/2430101.html,如需转载请自行联系原作者

相关文章
|
4月前
|
自然语言处理 Java 编译器
程序是如何运行的(一)
程序是如何运行的(一)
|
SQL IDE 关系型数据库
Ascent运行指南
Ascent运行指南
110 0
让程序只运行一个实例的简单实用的方法  
让程序只运行一个实例的简单实用的方法  
|
Web App开发 小程序 JavaScript
从0开始创建小程序
小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
154 0
|
C++ Windows
windows启动单个进程实例(系统中只有一个运行实例)
windows启动单个进程实例(系统中只有一个运行实例)
214 0
windows启动单个进程实例(系统中只有一个运行实例)
|
Kubernetes 网络协议 安全
本地k8s运行总结
本机上运行k8s的各种不同软件的对比和结构图
495 0
|
前端开发 Java 应用服务中间件
|
C#
C#让应用程序只运行一个实例的几种方法
一 判断是否有相同的实例已经运行 1 根据“Mutex”判断是否有相同的实例在运行 /// 已有实例运行返回true,否则为falsepublic bool IsRunningProcessByMutex(){     bool createNew;     using (System.
908 0
查看运行结果
看下列代码的运行结果 #include "pch.h" #include using namespace std; class A { public: A() { a = 1; b = 2; } pri...
886 0