2003-01-14

Forcing Only One Instance of an Application to Run at a Time in Visual C++

--------------------------------------------------------------------------------
This article was contributed by Simon Soosai.
This document is the easist way to check for multiple instances and bring the first instance on to the focus.


#pragma comment(linker, "/SECTION:.shr,RWS")
#pragma data_seg(".shr")
HWND g_hWnd = NULL;
#pragma data_seg()

On the App::InitInstance() add the code below:

//For single instance checking
if (g_hWnd)
{
::SetForegroundWindow(g_hWnd);
if (IsIconic(g_hWnd)) ::ShowWindow(g_hWnd, SW_RESTORE);
// terminates the creation
}

After Creating the Main Frame, get the handle and store it on the shared variable below.

g_hWnd = m_pMainWnd->m_hWnd;

0 Comments:

Post a Comment

<< Home