Вопрос: Как запустить только один экземпляр приложения?
Если оно уже запущено, то активизировать его?
Ответ :
code:
--------------------------------------------------------------------------------
WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int )
{
try {
//*************************************************************
// Versuche Mutex zu offnen:
HANDLE hMutex = OpenMutex( MUTEX_ALL_ACCESS, 0, "MeineAnwendung1.0" );
// Mutex-Handle ist 0, Mutex erzeugen:
if ( !hMutex )
hMutex = CreateMutex( 0, 0, "MeineAnwendung1.0" );
else {
// Dies ist die 2. Programminstanz. Die erste Instanz in
// Vordergrund bringen:
HWND hWnd = FindWindow( 0, "FensterTitel" );
SetForegroundWindow( hWnd );
// Meldung ggf. anzeigen:
ShowMessage( "Das Programm ist bereits aktiv. Es kann nicht erneut gestartet werden !" );
return 0;
}
//*************************************************************
Application->Initialize();
Application->CreateForm( __classid ( TfrmMain ), &frmMain );
Application->Run();
//*************************************************************
// Mutex wieder freigeben:
ReleaseMutex( hMutex );
//*************************************************************
} catch ( Exception & exception ) {
Application->ShowException( &exception );
}
return 0;
}
--------------------------------------------------------------------------------
(c) 2003 Borland X Portal
|