运行一个实例

定义全局变量 

CString g_strProp = _T("HookDllTest");
HANDLE g_hProp = HANDLE(1);


BOOL CHookDllTestApp::FirstInstance()

{
HWND oldHWnd = NULL;
::EnumWindows(EnumWndProc, (LPARAM) &oldHWnd);
if(oldHWnd != NULL)
{
::ShowWindow(oldHWnd, SW_SHOWNORMAL);
::SetForegroundWindow(oldHWnd);
return FALSE;
}
return TRUE;
}


BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam)
{
HANDLE h = ::GetProp(hwnd, g_strProp);
if(h == g_hProp)
{
*(HWND*) lParam = hwnd;
return FALSE;
}
return TRUE;

}


窗体初始化时

::SetProp(m_hWnd, g_strProp, g_hProp);

销毁时

::RemoveProp(m_hWnd, g_strProp);





你可能感兴趣的:(运行一个实例)