Programm nur 1x starten?
-
hoi
hPrevInstance ist laut SDK immer null. man soll sowas mit mutex machen.
weiß amer auch nicht genau wie das funktioniert.Meep Meep
-
Wie immer ungetestet, sollte aber klappen

class CSingleInstanceChecker { private: HANDLE m_MutexHandle; public: bool AnotherInstanceActive() const { if(!m_MutexHandle) { return true; } return false; } CSingleInst() { m_MutexHandle=CreateMutex(NULL, FALSE, "1337!!!11111111"); } ~CSingleInst() { if(m_MutexHandle) { CloseHandle(m_MutexHandle); } } };besser wär' es noch mit GetLastError() zu gucken, ob nun das Mutex wirklich schon existiert oder ob ein anderer Fehler "erfolgte"...
[EDIT]Spamschutz
[/EDIT]
-
Jo @Trundle0x7e: Schönes Beispiel
, man kann auch Semaphore verwenden, dazu einfach mal googeln.Nja eine relativ einfache und schnell implementierete Möglichkeit ist FindWindow()...Klasse und manchmal
auch Fenstertitel sollten ja bekannt sein...Selbstverständlich vorm reggen der Fensterklasse der aktuellen Instanz
.
-
-
Manche Programme machen es so, dass sie einfach eine Fensterklasse registrieren. Falls sie schon existiert, läuft das Programm bereits.
-
Wollt ihr mich natzen ??!! ...

1.:
rean schrieb:
http://marquardtnet.info/cecke/quickies.1/1_quicky_19.html
?Jo aber der Code sieht nicht nach reiner WinAPI aus...aber das entspricht doch dem was
Trundle0x7e gepostet hat...nur das er es noch schön in eine Klasse gepackt hat
.2.:
Neku schrieb:
Manche Programme machen es so, dass sie einfach eine Fensterklasse registrieren. Falls sie schon existiert, läuft das Programm bereits.
Hm jo, doppelt gemoppelt hält ja immer besser...
Denn
:Ich selbst schrieb:
Nja eine relativ einfache und schnell implementierete Möglichkeit ist FindWindow()...Klasse und manchmal
auch Fenstertitel sollten ja bekannt sein...Selbstverständlich vorm reggen der Fensterklasse der aktuellen Instanz
.EDIT:
Hm ok @Neku: Mein Post hat das zwar nicht so verdeutlicht, aber selber denken kann bekanntlich nicht schaden
.
-
CodeFinder schrieb:
2.:
Neku schrieb:
Manche Programme machen es so, dass sie einfach eine Fensterklasse registrieren. Falls sie schon existiert, läuft das Programm bereits.
Hm jo, doppelt gemoppelt hält ja immer besser...
Denn
:Ich selbst schrieb:
Nja eine relativ einfache und schnell implementierete Möglichkeit ist FindWindow()...Klasse und manchmal
auch Fenstertitel sollten ja bekannt sein...Selbstverständlich vorm reggen der Fensterklasse der aktuellen Instanz
.EDIT:
Hm ok @Neku: Mein Post hat das zwar nicht so verdeutlicht, aber selber denken kann bekanntlich nicht schaden
.Sorry, hab dich glatt überlesen

-
@Neku: Np

-
Neku schrieb:
Manche Programme machen es so, dass sie einfach eine Fensterklasse registrieren. Falls sie schon existiert, läuft das Programm bereits.
Dieses Verfahren ist allerdings unsicher. Es kann bei schnellem Start hintereinander die Situation eintreten, dass dennoch zwei Fenster erzeugt werden.
Dieser Artikel ist das Beste was ich kenne:
http://www.flounder.com/nomultiples.htm
-