只能运行程序的一个实例
2006-03-26 23:32
323 查看
四、 只能运行程序的一个实例
当程序已经运行时,如果再次运行,则激活前一个实例。
实现原理:
1. 只运行一个实例
BOOL CRaclientApp::InitInstance()函数中加入
还要在CRaclientApp::ExitInstance()中
2、激活前一个实例
然后再CmainFrame中添加相应的消息处理函数。
当程序已经运行时,如果再次运行,则激活前一个实例。
实现原理:
1. 只运行一个实例
#define UNIQE_NAME "{1AB792D6-EEF2-4528-9A84-91356811E7A4}"
BOOL CRaclientApp::InitInstance()函数中加入
m_hOneInstance = ::CreateMutex( NULL,FALSE,UNIQE_NAME); if ( GetLastError() == ERROR_ALREADY_EXISTS )//如果存在前一个 { //发送消息,激活实例 DWORD dwRecipients = BSM_APPLICATIONS; ::BroadcastSystemMessage( BSF_NOHANG,&dwRecipients, ID_RA_MSG, // registered window message 0,0 ); // user defined parameters return FALSE; }
还要在CRaclientApp::ExitInstance()中
CloseHandle(m_hOneInstance);
2、激活前一个实例
#define ra_MSG "{D48CA923-4925-41cb-8F56-ABAAAFCEF787}" const UINT ID_RA_MSG =::RegisterWindowMessage(ra_MSG);//注册消息
然后再CmainFrame中添加相应的消息处理函数。
相关文章推荐
- 使Qt 程序只能运行一个实例的3种方法
- C# WINFORM判断程序是否运行,且只能运行一个实例
- 让程序只能运行一个实例(来自ccrun)
- MFC程序只能运行一个实例
- 程序只能运行一个实例方法
- FCL小应用系列-----------如何使得程序只能有一个实例运行?
- C#只能运行一个实例程序的方法
- 使程序只能运行一个实例
- 让程序只能被运行一个实例
- c# 程序只能运行一个实例
- 【转】C#只能运行一个实例程序的方法
- c# 程序只能运行一次(多次运行只能打开同一个程序) 并激活第一个实例,使其获得焦点,并在最前端显示.
- windows mobile 只能运行一个程序实例
- 只能运行一个程序实例的两种方法对比
- C#只能运行一个实例程序的方法
- qt编写一个只能运行单个实例的程序,不用Windows API
- c# 程序只能运行一次(多次运行只能打开同一个程序) 并激活第一个实例,使其获得焦点,并在最前端显示.
- C# WINFORM判断程序是否运行,且只能运行一个实例
- 怎样让我的MFC程序只能运行一个实例?
- .NET限制程序一次只能运行一个实例