Wie kann man werhindern, das die gleiche Applikation nicht mehrmals auf dem Rechner gestartet werden kann?



  • Hallo Leute,

    habe dies mal bei mir eingebaut.
    Aber das funzt nur in der Debug-Version und nicht in der Release.
    Warum?

    int main(array<System::String ^> ^args) 
    { 
    // Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden 
    Application::EnableVisualStyles(); 
    Application::SetCompatibleTextRenderingDefault(false); 
    
    bool pobjIOwnMutex = false; 
    System::Threading::Mutex^ pobjMutex = gcnew System::Threading::Mutex(true, "TestProg", pobjIOwnMutex); 
    
    if (pobjIOwnMutex) 
    { 
       // Hauptfenster erstellen und ausführen 
       Application::Run(gcnew Form1()); 
    } 
    else 
    { 
       MessageBox::Show("Programm läuft schon..."); 
    } 
    
    return 0; 
    }
    

    Kann mir einer helfen?

    Gruß



  • Hallo,

    du musst das Mutex-Objekt leben lassen, mit KeepAlive, als Erklärung siehe z.B.:

    http://www.yoda.arachsys.com/csharp/faq/#one.application.instance

    MfG,

    Probe-Nutzer


Anmelden zum Antworten