Zum Hauptinhalt springen

Aufruf aus anderen Programmen

Um MapEdit Desktop von anderen Programmen oder aus einer Webseite aufzurufen gibt es zwei Möglichkeiten.

Beide haben gemeinsam dass diese Programme sich im gleichen Verzeichnis befinden müssen wie die MapEdit Start Programme (z.B. MapEdit.exe) und die Konfigurationsdatei MapEdit.ini.

Will man MapEdit in einer Webseite einbinden bzw. daraus aufrufen müssen an jedem Arbeitsplatz die unten stehenden Registry Einträge vorhanden sein.

Das Registrieren muss nun nicht mehr händisch gemacht werden, das passiert automatisch beim Starten.

Anmerkung

Bei beiden Varianten können die URL-Parameter zum Start von MapEdit Desktop verwendet werden.

Variante mit MapEdit.RemoteControl.exe

Diese Methode wird empfohlen. Sie hat Vorteile gegenüber der zweiten, unten aufgeführten Variante welche wir auch noch anbieten.

Hierzu wird auf jedem Client PC ein Eintrag in die Registry erstellt. Das kann manuell (als Admin) oder per Softwareverteilung für alle zentral gemacht werden.

Notwendiger Registry Eintrag:

..........
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mapeditdesktop]
@="URL: MapEditDesktop Protocol"
"URL Protocol"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mapeditdesktop\DefaultIcon]
@="C:\\Program Files (x86)\MuM MapEdit\MapEditDesktop\MapEdit.RemoteControl.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mapeditdesktop\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mapeditdesktop\Shell\Open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mapeditdesktop\Shell\Open\Command]
@="\"C:\\Program Files (x86)\\MuM MapEdit\\MapEditDesktop\\MapEdit.RemoteControl.exe\"\"%1\""
..........

In unserem Download Bereich finden sie im Verzeichnis MapEdit/Support ein Beispiel für die Registry am Client, welches sie als Vorlage verwenden können.

Es muss nur der Pfad angepasst werden, wo die MapEdit.RemoteControl.exe liegt. Dies kann ein lokales Verzeichnis sein, Netzlaufwerk, oder auch ein UNC-Pfad sein. Im obigen Beispiel ist der Default Installationspfad von MapEdit Desktop eingestellt.

Um über diese Variante MapEdit zu starten muss von dem Programm oder einer Webseite wie folgt angesprochen werden:

mapeditdesktop://Execute?

Hinter dem ? können dann die bekannten Parameter zum Start von MapEdit Desktop gesetzt werden. Beispiel:

mapeditdesktop://Execute?Username=ADMINISTRATOR&Password=123456

Wird MapEdit Desktop nicht über einen Browser aufgerufen, sondern über ein anderes Programm heraus, dann müssen diese Parameter statt mit & durch ~ getrennt werden.

Variante mit MapEdit.RemoteControl.Listener.exe

Diese Methode kann dann genutzt werden wenn ein eigenes Protokoll / Registry Eintrag nicht möglich ist.

Die MapEdit.RemoteControl.Listener.exe wird in Autostart des Client PC eingebunden, damit der Prozess immer beim Start des PCs läuft. Das Programm hört auf den Port 60026. Diesen Port kann man anpassen, sofern diese bereits belegt oder nicht verwendet werden kann. Um den Port zu ändern muss eine Datei mit der Bezeichnung MapEdit.RemoteControl.Listener.ini angelegt werden und in diese die gewünschte Portnummer eintragen werden z.B. Port=60027.

Beispiel Aufruf:

http://localhost:60026/Mum.Geo.Services/RemoteControl.html?

Hinter dem ? können dann die bekannten Parameter zum Start von MapEdit Desktop gesetzt werden. Beispiel:

http://localhost:60026/Mum.Geo.Services/RemoteControl.html?Username=ADMINISTRATOR&Password=123456

Es muss immer als localhost aufgerufen werden, da MapEdit Desktop lokal auf dem Client PC läuft.

Wird MapEdit Desktop nicht über einen Browser aufgerufen, sondern über ein anderes Programm heraus, dann müssen diese Parameter statt mit & durch ~ getrennt werden.

Vor- und Nachteile

Die MapEdit.RemoteControl.exe funktioniert problemlos in allen Umgebungen, egal ob das MapEdit auf Terminal Server, virtueller Rechner oder "Bare Metal" installiert ist. Es braucht keinen geöffneten Port.

Bei der MapEdit.RemoteControl.exe registriert man sein eigenes Protokoll und mit diesem startet dann auch direkt MapEdit Desktop, ohne Umweg. Der Vorteil ist, dass es nicht zunächst einen Prozess starten muss der immer im Speicher läuft. Da kann nichts unabsichtlich beendet werden oder mal nicht laufen.

Die MapEdit.RemoteControl.Listener.exe funktioniert nicht auf Terminal-Server, da sie immer einen definierten Port 60026 aufmacht. Der Port kann zwar in der .ini angepasst werden, aber das muss mit allen anderen Anwendungen die installiert sind abgestimmt sein.

Es muss bei der MapEdit.RemoteControl.Listener.exe kein Eintrag in der Registry am Client PC vorhanden sein. Es genügt dass die Programme in dem Autostart des Client PC gestartet ist.