AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Nur 1 Instanz pro _System_ erlauben?
Thema durchsuchen
Ansicht
Themen-Optionen

Nur 1 Instanz pro _System_ erlauben?

Ein Thema von blackdrake · begonnen am 5. Sep 2008 · letzter Beitrag vom 5. Sep 2008
 
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, 01: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz