nur eine instanz
-
hi, gibt es eine möglichkeit
nur eine instanz eines konsolenprogrammes zuzulassen?
(wenn möglich ohne winapi)mfg
-
Das kommt auf den Einsatzbereich an.
Du kannst solche Sachen machen wie eine Lock-Datei irgendwo bei Programmstart anzulegen und diese bei Programmende wieder löschen oder die Liste der Prozesse durchsuchen, ist aber alles nicht besonders schön.
-
Standardmaessig löst man es über Filelocks.
Man sucht sich eine Datei aus, normalerweise in einem entsprechenden subdirectory wo alle anderen user spezifischen dateien für die anwendung liegen und erstellt sie und lockt sie.
wenn nun ein 2. prozess geöffnet wird, stellt er fest: datei existiert. wenn sie gelockt ist, dann läuft der andere prozess noch. ist sie nicht gelockt, ist der andere prozess nicht sauber beendet worden.
eine andere möglichkeit ist das selbe statt über eine datei über einen mutex zu machen.
in reinem c++ geht es nicht, man muss auf die system api zugreifen.
-
habs jetzt über mutex gelöst, vielen dank für eure sehr hilfreichen antworten!!!