Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » FAQ VC++ / MFC » Mehrfachstart einer Anwendung vehindern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.01.2003, 16:35 Uhr
Uwe
C/C++ Master
(Administrator)


Autor U. Fröhlich

Wer kennt nicht das Problem, dass der User eine Anwendung mehrmals aufruft? Um das zu verhindern fügen wir folgendens in der InitInstance() unserer Anwendung ein:

C++:
BOOL CMyApp::InitInstance()
{
        AfxEnableControlContainer();

        // Standardinitialisierung
        // Wenn Sie diese Funktionen nicht nutzen und die Größe Ihrer fertigen
        //  ausführbaren Datei reduzieren wollen, sollten Sie die nachfolgenden
        //  spezifischen Initialisierungsroutinen, die Sie nicht benötigen, entfernen.
        HANDLE hMutex =  CreateMutex   (NULL, TRUE, "Mutex String");
        bool gefunden=FALSE;
        if(GetLastError() == ERROR_ALREADY_EXISTS)
                gefunden = TRUE;
        if(hMutex)
                ReleaseMutex        (hMutex);
        if (gefunden)
        {
                AfxMessageBox("Anwendung wurde bereits gestartet!");
                return FALSE;
        }
    ............
    ............
    ............
}


Die Funktion CreateMutex() verlangt als dritten Parameter einen Zeiger auf einen "null-terminated string". Über diesen String ist es möglich unsere Anwendung eindeutig zu ermitteln bzw. zu identifizieren. Was in dem String steht ist eigentlich unserer Mutex "schnuppe"!
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ FAQ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: