保证系统中只运行一个程序实例

HANDLE hMutex = ::CreateMutex( NULL, TRUE, strObjectName );
if( GetLastError() == ERROR_ALREADY_EXISTS )
{
 //Find our previous application's main window.
 CWnd * pPrevWnd = CWnd::GetDesktopWindow()->GetWindow( GW_CHILD );

 while( pPrevWnd )
 {
  // Does this window have the previous instance tag'set?
  if( ::GetProp( pPrevWnd->GetSafeHwnd(), m_pszExeName ) )
  {
   // Found window, now set focus to the window.
   // First rrestore window id it is currently iconic.
   if( pPrevWnd->IsIconic() )
   {
    pPrevWnd->ShowWindow( SW_RESTORE );
   }

   // Set focus to main eindow.
   pPrevWnd->SetForegroundWindow();

   // Id window has a pop-up window, set focus to pop-up.
   pPrevWnd->GetLastActivePopup()->SetForegroundWindow();

   if(m_lpCmdLine[0] != _T('/0'))
   {
    // Deal with command line parameter
   }

   return FALSE;
  }

  // Didnot find window, get next window in list.
  pPrevWnd = pPrevWnd->GetWindow( GW_HWNDNEXT );
 }

 return FALSE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值