lehha
19-01-2006, 10:12
Всем привет!
Опять возник вопросик.
Мне нужно при запуске 2 экземпляра программы активизировать 1, т.е. если прога запущена и при попытке запусить её 2 раз 1 копия выдвигалась на первый план.
Вот код что я накалябал, все проблема в том что я не могу окно поместить на первый план((
HANDLE hMutex = CreateMutex (NULL, TRUE, "Моя программа");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
HWND oWnd = NULL;
oWnd = ::FindWindow(NULL,"Моя программа");
//if (::IsIconic(oWnd))
// ::SendMessage(oWnd, WM_SYSCOMMAND, SC_RESTORE,0);
::SetForegroundWindow(oWnd);
::ShowWindow(oWnd, SW_RESTORE);
CloseHandle(hMutex);
ExitProcess(0);
}
Спасибо зарание!
Опять возник вопросик.
Мне нужно при запуске 2 экземпляра программы активизировать 1, т.е. если прога запущена и при попытке запусить её 2 раз 1 копия выдвигалась на первый план.
Вот код что я накалябал, все проблема в том что я не могу окно поместить на первый план((
HANDLE hMutex = CreateMutex (NULL, TRUE, "Моя программа");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
HWND oWnd = NULL;
oWnd = ::FindWindow(NULL,"Моя программа");
//if (::IsIconic(oWnd))
// ::SendMessage(oWnd, WM_SYSCOMMAND, SC_RESTORE,0);
::SetForegroundWindow(oWnd);
::ShowWindow(oWnd, SW_RESTORE);
CloseHandle(hMutex);
ExitProcess(0);
}
Спасибо зарание!