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.
 
   |