Zuerst dache ich an eine Möglichkeit, die aktuelle Prozessid in der Registry abzuspeichern.
Aber diese Methode ist nicht sehr sicher,
falls das Programm abstürzt oder z.B. vom Task Manager heraus abgeschossen wird,
wird die Routine nicht aufgerufen, die den jeweiligen Eintrag wieder herauslöschen sollte.
Zum Glück habe ich auf der MSDN einen Hinweis gefunden und gleich implementiert :D
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bool created; | |
System::Threading::Mutex ^mutex = gcnew System::Threading::Mutex(true, "ZLS VIS", created); | |
if (!created) | |
{ | |
MessageBox::Show("Can not start Vis, another instance is already running!"); | |
return 0; | |
} | |
GC::KeepAlive(mutex); |
weitere Links:
http://www.ai.uga.edu/mc/SingleInstance.html
Keine Kommentare:
Kommentar veröffentlichen