只容许程序运行1个实例

.

只容许程序运行1个实例

 

关键点

.

CreateMutex

The CreateMutex function creates or opens a named or unnamed mutex object.

HANDLE CreateMutex(

  LPSECURITY_ATTRIBUTES lpMutexAttributes,  // SD

  BOOL bInitialOwner,                      // initial owner

  LPCTSTR lpName                            // object name

);

 

实现过程

.

//CProject02Dlg::OnInitDialog()
//JustRunOnce(TRUE);
void CProject02Dlg::JustRunOnce(BOOL bValue)
{
    if (!bValue) return;
    CString AppTitle;
    AppTitle.Format("ABC");
    HANDLE m_hMutex = CreateMutex(NULL,TRUE,AppTitle);
    if( GetLastError() == ERROR_ALREADY_EXISTS )
    {
        MessageBox("程序已经运行...","提示",MB_ICONINFORMATION);
        exit(0); //让新开的程序不运行
    }
}

.

.

   

.

备注

.在MessageBox下面

//增加1个功能当这个程序已经运行时,就最前端激活原程序,并显示
//被最小化的程序 让其正常显示
 
//使窗口正常显示
ShowWindow(SW_RESTORE);
//当一个程序已经最小化时,此方法有效
void CMfc03Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
HWND hWnd=::FindWindow(NULL,"mfc02");
::ShowWindow(hWnd,SW_RESTORE);
}
 

相关链接

相关链接    相关链接

 

.




附件列表

 

转载于:https://www.cnblogs.com/xe2011/p/3762065.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值