Home
MB-Ruler Pro Hilfe Prev Page Prev Page
Quickstart
Demoversion / Vollversion
Messinstrumente
Maßstab festlegen
Geometrie-Dreieck
Koordinatensystem
Doppelfadenkreuz
Kreis (Radius)
Kreis (3 Punkte)
Ellipse
Linienzug (Polyline)
Fläche (Polygon)
Linie
Winkel (3 Punkte)
Winkel (4 Punkte)
Abstand Punkt-zu-Linie
Vermessungs-Fenster
Autokalibrierung
weitere Funktionen
RGB-Picker
Screen-Cutter
Bildschirmlupe
Overlay-Objekte
Remote Interface
Kommunikation
Funktionen
Funktionstasten
Kommentare anderer Benutzer
History
Über ...
Homepage

Remote Interface - Kommunikation

Ermitteln der installierten Version

MB-Ruler bzw. MB-Ruler Pro trägt alle für andere Programme notwendigen Daten der Version in der Registry unter dem Schlüssel

HKEY_CURRENT_USER\Software\MB\MB-Ruler
HKEY_CURRENT_USER\Software\MB\MB-Ruler Pro

ein. Der Eintrag Application gibt den vollständigen Dateinamen (incl. Pfad) an, der Eintrag RemoteInterfaceVersion die Versionsnummer des Remote Interfaces. Dieses muss 400 (Dezimalwert) oder höher sein.

Die Prüfung auf einer gültigen Version unter Delphi sieht damit folgendermaßen aus:

  reg := TRegistry.Create;
  if reg.OpenKey('Software\MB\MB-Ruler',true) then
  begin
    if (FileExists(reg.ReadString('Application')) and
      (reg.ReadInteger('RemoteInterfaceVersion') >= 400)) then
    begin
      // OK - MB-Ruler - Version vorhanden
    end;
  end;
  reg.Destroy;

bzw. für MB-Ruler Pro

  reg := TRegistry.Create;
  if reg.OpenKey('Software\MB\MB-Ruler Pro',true) then
  begin
    if (FileExists(reg.ReadString('Application')) and
      (reg.ReadInteger('RemoteInterfaceVersion') >= 400)) then
    begin
      // OK - MB-Ruler - Version vorhanden
    end;
  end;
  reg.Destroy;

Überprüfung der installierten Version von MB-Ruler

Ob MB-Ruler bereits läuft, klärt der Aufruf der Windows API Funktion FindWindow mit dem Parameter "MB-Ruler".
Ist der Rückgabewert der Funktion 0, dann muss Ihre Applikation MB-Ruler starten, ist der Rückgabewert ungleich 0, dann haben Sie das Fensterhandle von MB-Ruler ermittelt und können initialisieren.

  MBRulerHandle := FindWindow(nil, 'MB-Ruler');
  if (MBRulerHandle = 0)
  then // MB-Ruler muss gestartet werden
  else // MB-Ruler läuft und kann initialisiert werden

Initialisieren von MB-Ruler

Nachdem das Fensterhandle von MB-Ruler ermittelt wurde, muss MB-Ruler initialisiert werden, um im weiteren Verlauf Nachrichten von anderen Applikationen zu akzeptieren. Hierzu dient der Aufruf

SendMessage(MBRulerHandle, WM_MBRULER_GENERELL, GENERELL_ADDCLIENT, GENERELL_ADDCLIENT_WITHOUTLOGING);

Danach ist MB-Ruler fertig initialisiert.
Die Konstanten werden in der Datei uRemoteInterfaceEventCodes.pas definiert, die zusammen mit MB-Ruler ausgeliefert wird.

Ergänzung:

Um von MB-Ruler über Änderungen der Daten aktiv informiert zu werden, müssen Sie Ihre Applikation mit

SendMessage(MBRulerHandle, WM_MBRULER_GENERELL, GENERELL_ADDCLIENT, Fensterhandle);

aufrufen, wobei Fensterhandle das Handle Ihres Fensters ist, dass die Meldungen erhalten soll.

Dieses Fenster muss Meldungen mit der Message ID WM_MBRULER_GENERELL verarbeiten.
Beim Initialisierungsschritt wird die Message

PostMessage(WM_MBRULER_GENERELL, GENERELL_ADDCLIENT, Fensterhandle)

an die Applikation zurück geschickt.
Diese muss Fensterhandle als Result des Aufrufs zurückgeben um sich erfolgreich bei MB-Ruler anzumelden.

Converted from CHM to HTML with chm2web Pro 2.76 (unicode)