Сборник часто задаваемых вопросов по программированию в среде Borland C++ Builder

            

Как запустить только один экземпляр приложения? Если оно уже запущено, то активизировать его?



Вопрос: Как запустить только один экземпляр приложения? Если оно уже запущено, то активизировать его?

Ответ : 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; } --------------------------------------------------------------------------------

Содержание раздела