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