UniqueInstance/de

From Lazarus wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr)

Über

UniqueInstance stellt einen einfachen Weg zur Verfügung, ein mehrfaches Starten der Anwendung zu verhindern.

Funktionen

  • Einfach zu nutzen, es muss lediglich die Komponente auf das Hauptformular gesetzt werden.
  • Stellt einen Mechanismus zur Verfügung, die Befehlszeilenparameter der anderen Instanzen zu empfangen.

Anwendung (Komponente)

Einfach die Komponente auf dem Hauptformular platzieren.

Eigenschaften:

  • Enabled: aktiviert/deaktiviert die Komponente
  • Identifier: wird genutzt, um die Anwendung zu identifizieren
  • UpdateInterval: Intervall (in ms), in welchem die Komponente Nachrichten von neuen Instanzen empfängt. (Nur unter Linux relevant, da unter Windows die systemeigene Nachrichtenschleife genutzt wird.)

Event

  • OnOtherInstance: wird aufgerufen, falls eine neue Instanz gestartet werden soll und empfängt ggf. die an diese übergebenen Parameter

Anwendung (Raw)

Fügen Sie uniqueinstanceraw zur Uses-Klausel hinzu.

Aufruf der InstanceRunning-Funktion: True wird zurückgegeben, falls bereits eine Instanz läuft.

Es gibt zwei Varianten:

1. Ohne Argumente:

  • UniqueInstance nutzt den Namen des Executable, um dieses zu identifizieren. Parameter werden nicht übergeben.

2. Mit zwei Argumenten:

  • Identifier: Identifizierung der Anwendung
  • SendParameters (default = false): Sendet vor dem Beenden die ggf. übergebenen Parameter an die bereits laufende Instanz.

Bemerkungen

  • Getestet unter win32 (XP SP2) und Linux (Ubuntu 9.04) mit fpc 2.4.2.
  • Werden zwei TUniqueInstance-Komponenten mit selber Identifizierung in einer Anwendung verwendet, startet diese nicht.
  • Der Identifier ist optional sowohl in der Funktion als auch in der Komponente. Wird keine Identifizierung gesetzt, wird der Name der Programmdatei verwendet. Dies hat allerdings zur Folge, dass nach einem eventuellen Umbenennen der Datei eine zweite Instanz nicht mehr als solche erkannt wird. Falls andererseits zwei unterschiedliche Anwendungen die selbe Identifizierung verwenden, verhindert die eine den Start der anderen.
  • Um zu verhindern, dass die eigene Anwendung eine andere am Starten hindert, kann zur Sicherheit eine GUID als Identifizierung genutzt werden.

Verlauf

  • 17/04/11 - Version 1.0
    • Fix: Anwendung wird als laufend erkannt nach einem Absturz unter Unix
    • Fix: Absturz beim Kompilieren mit dem Gtk2-Widgetset
    • Setzt Vorgabewertevon veröffentlichten Eigenschaften
    • Optimierungen und Code-Bereinigung
    • Neues Icon
  • 02/10/07 - Version 0.2
    • Basiert auf FPC 2.2.0
    • Parameterempfang unter Linux implementiert
    • Optimierung und Säuberung des Codes
  • 16/12/06 - Erstes Release. Siehe mein Blog um zu erfahren, wie es begann.

Autor

Luiz Américo Pereira Câmara

Lizenz

Modifizierte LGPL

Download

Version 1.0: Download von GitHub.