Doppelstart Verhindern
-
Hallo
mit der Folgende Funktion gebe ich eine Meldung Heraus das der Button schon betätigt wurde:
char *p_appName = "KeinDoppelstart";
DWORD dwError;// Kennung erstellen
CreateMutex(NULL, true, p_appName);// Fehlermeldung prüfen
dwError = GetLastError();if (ERROR_ALREADY_EXISTS == dwError)
{
MessageBox("Die Anwendung wurde bereits gestartet!", "Fehler!", MB_ICONERROR);
//Anwendung schliessen
OnOK();
}
return TRUE;Das ich unter dem Start Button abgelegt habe.
Wie mache ich es den wenn ich jetzt Stopp Drücke und beim Start Button diese Meldung nicht mehr Angezeigt wird?
Danke schon mal...
-
Ich würde mal vermuten, mit ReleaseMutex.
-
Vielleicht hilft dir ja das hier weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39088.html
-
Startet dein Button denn wirklich eine andere Anwendung oder willst du nur, dass eine Funktion über den Button nicht doppelt ausgeführt wird? Dafür bräuchtest du nämlich keinen globalen Mutex. Eine bool'sche Variable geht da auch (sowas wie bIsRunning).
-
Ich mache eine Messung und mit dem Button Start fängt mein Messung an. Und wenn man da noch mal drauf drück, soll die Meldung kommen das die Messung schon läuft! Nach dem Stoppen und Starten wider kommt die Meldung noch mal, aber was nicht kommen sollte.
-
CCout schrieb:
Ich mache eine Messung und mit dem Button Start fängt mein Messung an. Und wenn man da noch mal drauf drück, soll die Meldung kommen das die Messung schon läuft! Nach dem Stoppen und Starten wider kommt die Meldung noch mal, aber was nicht kommen sollte.
benutz doch einfach
EnableDlgItem(IDC_BTN_START, FALSE);//IDC_BTN_START durch deine ID vom Button ersetzen.beim klick auf den button, dann kann man nicht nochmal draufklicken

-
Machine schrieb:
CCout schrieb:
Ich mache eine Messung und mit dem Button Start fängt mein Messung an. Und wenn man da noch mal drauf drück, soll die Meldung kommen das die Messung schon läuft! Nach dem Stoppen und Starten wider kommt die Meldung noch mal, aber was nicht kommen sollte.
benutz doch einfach
EnableDlgItem(IDC_BTN_START, FALSE);//IDC_BTN_START durch deine ID vom Button ersetzen.beim klick auf den button, dann kann man nicht nochmal draufklicken

wenn ich das mache erhalte ich die Fehlermeldung das EnableDlgItem nicht Deklariert wurde
-
schonmal was von eigeninitiative gehört?!
dann machs halt so:GetDlgItem( IDC_BTN_BLABLA )->EnableWindow( FALSE );
-
Danke es geht.