TinTin Geschrieben 22. August 2003 Geschrieben 22. August 2003 hi, habt ihr die heissen tage alle gut überlebt? ich will keine klagen hören! :marine zum thema: ich habe ein programm und ich möchte das dieses programm nur einmal gestartet werden kann. ok, öfter starten möchte ich es schon, aber immer nur eimmal zur gleichen zeit. jetzt die frage, wie stelle ich das am besten an. ich hab mir dazu schon mal gedanken gemacht. das muss doch irgendwie mit einer prozess id zu machen sein. würde mich freuen, wnn mich jemand in die richtige richtung leiten könnte. ciao TinTin Zitieren
Guybrush Threepwood Geschrieben 22. August 2003 Geschrieben 22. August 2003 Schau dir mal die Funktion CreateMutex() an. Aber die Boardsuche hilft dir in der Beziehung auch weiter;) Zitieren
robotto7831a Geschrieben 22. August 2003 Geschrieben 22. August 2003 Hallo, beim Borland Builder geht es so. try { HANDLE MutexHandle = CreateMutex (NULL, TRUE, "ACMUTEX"); if (WaitForSingleObject(MutexHandle,0) != WAIT_TIMEOUT) { Application->Initialize(); Application->CreateForm(__classid(TFrmOptionen), &FrmOptionen); Application->CreateForm(__classid(TFrmProtokoll), &FrmProtokoll); Application->Run(); } else { ShowMessage("Programm kann nur einmal gestartet werden!"); } } catch (Exception &exception) { Application->ShowException(&exception); } [/code] Frank Zitieren
TinTin Geschrieben 23. August 2003 Autor Geschrieben 23. August 2003 bordsuche... jaja, das versteht sich fast von selbst... nur muss man auch wissen wonach man sucht, darum die frage. ich werde mir mal diese CreateMutex() geschichte anschauen und danach suchen. ich hoffe das geht auch mit dem vc++ 6.0. danke für den tip...und ein rundes wochenende... ciao TinTin Zitieren
Guybrush Threepwood Geschrieben 23. August 2003 Geschrieben 23. August 2003 Klar gehts, wenn trotzdem Probleme auftauchen einfach melden:) Zitieren
TinTin Geschrieben 24. August 2003 Autor Geschrieben 24. August 2003 super, danke erstmal. bin aber noch nicht dazu gekommen mich damit zu beschäftigen... Ciao TinTin Zitieren
TinTin Geschrieben 5. September 2003 Autor Geschrieben 5. September 2003 hat zwar etwas gedauert, aber ich hab mich jetzt damit beschäftigt und das sogar erfolgreich!!! will mich nur für eure hilfe bedanken... ciao TinTin Zitieren
ITSE Geschrieben 13. September 2003 Geschrieben 13. September 2003 Für alle, die noch nicht dahintergestiegen sind: Es muss auf jeden Fall bei VC++ 6 in der InitInstance-Funktion überprüft werden, ob das Programm schon gestartet wurde. Die InitInstance wird nämlich bei jedem Starten für jeden Instanz des Programmes ausgeführt. Zitieren
Klotzkopp Geschrieben 14. September 2003 Geschrieben 14. September 2003 Original geschrieben von ITSE Es muss auf jeden Fall bei VC++ 6 in der InitInstance-Funktion überprüft werden, ob das Programm schon gestartet wurde. Die InitInstance wird nämlich bei jedem Starten für jeden Instanz des Programmes ausgeführt. InitInstance (als überschriebene Memberfunktion einer von CWinApp abgeleiteten Klasse) gibt es nur bei MFC-Anwendungen. Die Prüfung muss auch nicht dort erfolgen. Es ist nur sinnvoll, weil man das Programm einfach und sicher beenden kann, indem man FALSE zurückgibt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.