Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Programm 2x starten

(Anonym) / 4 Antworten / Flachansicht Nickles

Wie kann ich unter Visual C++ (API, kein MFC) verhindern das der User das Programm 2x startet. Unter VB ist das IF App.hinstance=True ...
Aber unter VC weiss ich nicht Hilfe!

bei Antwort benachrichtigen
Andreas42 (Anonym) „Was zum Teufel ist denn ein Mutex, und was wenn ein anderes Programm auch so...“
Optionen

Hi!

Ein Mutex ist eine Art Sperrmechanismus. Ein Programm setzt quasi eine globale Sperrvariable (der Name der Sperrvariable wird im Programm festgelegt). Will nun ein anderes Programm die gleiche Sperrvariable anlegen, dann wird dies zurückgewiesen bzw. das zweite Programm muss warten, bis das erste Program seine Variable wieder gelöscht hat.
Gedacht ist das in Hauptsache, damit eine Anwendung nicht mehrfach gestartet wird.

Oft wird sowas auch als Applikationssperre (application-lock) bezeichnet.

Damit sich also zwei völlig fremde Programme in die Quere kommen, müssten sie den gleichen Sperrvariablennamen in CreateMutex() angeben.
Das sollte man als Programmierer verhindern, in dem man ein möglichst eindeutigen Namen verwendet (in der Praxis wird man den Programmnamen als Bestandteil einfügen).

Ich hoffe, das hilft dir weiter.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen