Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#5

Re: Nur 1 Instanz pro _System_ erlauben?

  Alt 5. Sep 2008, 02:24
Zitat von blackdrake:
Exklusives Öffnen: Habe ich mir auch schon mal überlegt. (Eventuell habe es auch mal in einem anderen Projekt implementiert? Werde ich nochmal nachschauen.) Das Problem ist, dass die 2te Instanz zumindestens eine Meldung ausgibt, wenn es zu einem Schreibfehler kommt.

Beim Starten prüfen: Das ist ja genau das Problem. Der zweite Benutzer des Systems sieht nicht, wenn der erste Benutzer eine Mutex hat. Also kann ich schlecht auf eine Zweitinstanz prüfen.

Die separate Datei wäre dann ein Lockfile. Sowas wird meines Wissens bei Linux-Servern (Apache) verwendet, jedoch ist dies für Client-Software bedenklich, da die Software unbrauchbar wird, wenn man sie durch Stromausfall oder den Taskmanager beendet. (Unter der Annahme, der DAU Benutzer weiß nicht, dass eine Lockfile gelöscht werden muss)
nicht nur die datei anlegen, sondern auch gegen Zugriff durch andere Prozesse sperren (Exklusiv öffnen halt ), ist imho das gleiche wie Memory-Mapped-Files...und dann schauen, ob die datei gesperrt ist. ist der prozess tot kann die datei geöffnet werden und die "2. Instanz" ist erlaubt.

siehe dwShareMode in [MSDN] CreateFile
den Wert auf 0 setzen sollte das bewerkstelligen. wie du testen kannst, steht auch drin

Gruß Frank
  Mit Zitat antworten Zitat