cardo4 Launcher

Bei dem cardo4 Launcher handelt es sich um ein Desktop-Programm, welches lokal auf dem Windows PC des Anwenders installiert werden kann. Die Verwendung ist optional, die Nutzung steht mit der cardo Version 4.0.9 zur Verfügung.

Ab cardo Version 4.1.2 wird die neue Version 2 ausgeliefert. Hier wird u.a. eine eigene Websocket-Implementierung (C++) verwendet, nicht mehr die in Windows integrierte Version. Der Launcher ist jetzt (nur noch) als 64Bit Version verfügbar.

Eine Nutzung des Launchers mit dem Internet-Explorer ist z.Z. nicht möglich, wenn cardo per https aufgerufen wird. Für andere Browser gilt diese Einschränkung nicht.

Wozu?

Der Launcher löst dabei zwei Probleme browserbasierter Anwendungen, die sonst nur mit Komforteinbußen oder gar nicht nutzbar sind.

  • Kommunikation aus Desktop-Programmen zu cardo

    cardo verfügt über recht gute Möglichkeiten zur "Fernsteuerung (cardo.COM)". Damit können durch den Aufrufe bestimmter URL Aktionen in der aktuellen Browsersitzung ausgeführt werden, bspw. eine cardo4 Anwendung starten, Wiederherstellen einer Sitzung, Starten des GisViewer mit Hervorhebung eines bestimmten Datensatz in der Karte etc.

    Solange diese Kommunikation zwischen zwei Browserfenstern stattfindet ist das recht unproblematisch.

    Allerdings lässt der Komfort deutlich nach, wenn ein Desktopprogramm diese Funktionen verwenden möchte. Hier erfordert der Aufruf der URL immer ein Zwischenfenster. Dieses bleibt dann i.d.R. als leeres, weißes Fenster stehen.

    Genau hier setzt eine der Funktionen des Launchers an.

    Die Aufrufe werden dabei wie gehabt durchgeführt, aber mit dem URL Protokoll-Prefix "cardo4:" versehen.

    Bsp.: Bisher, als Link:

      http://IhrCardo/net4/icom.ashx?action=startApp&app=IduIT.cardo.Core.Applications.FileBrowser.FileBrowserApplication
    

    Neu, mit vorangestellter Protokoll-URL:

      cardo4:http://IhrCardo/net4/icom.ashx?action=startApp&app=IduIT.cardo.Core.Applications.FileBrowser.FileBrowserApplication
    
  • Starten von Desktop-Programmen aus cardo

    Der andere Weg, aus dem Browser heraus ein Desktop-Programm starten, ist mit ähnlichen Problemen verbunden. Dies kann entweder über ActiveX erfolgen, was nur dem IE vorbehalten ist. In cardo ist eine Feld-Aktion vorhanden, die den Namen des Programms und die Argumente entgegennimmt und den Aufruf auslöst.

    Wenn der ActiveX Weg nicht funktioniert, i.d.R. geht das erst nach dem Anpassen der Sicherheitseinstellungen des Browsers, wird als "Fallback" eine Batch-Datei erstellt, die der Nutzer explizit ausführen muss.

    Auch hierfür bietet der Launcher eine Aktion an, die diese Probleme vollständig umgeht.

Installation

Das Setup kann im Informationsdialog in cardo unter "Mein cardo" => "cardo Launcher" heruntergeladen werden.

Mein Cardo

Hier sind auch Statusinformationen und Testfunktionen vorhanden.

Die Deinstallation erfolgt über die Windows Funktion "Programme hinzufügen oder entfernen".

Kleiner Hinweis: Wenn das Setup bei der Deinstallation bemerkt das die Anwendung noch läuft, dann wählen Sie "Keine Anwendung schließen" bei der dann folgenden Abfrage aus, der Launcher beendet sich selbständig, der angedrohte Neustart ist nicht erforderlich.

Darstellung auf dem PC

Die Anwendung ist nicht direkt als Fenster sichtbar, lediglich als Tray-Icon mit dem bekannten cardo4 Symbol.

Bei Rechtsklick auf das Symbol sehen Sie ein kleines Kontext-Menü. Hier gibt es die Möglichkeit den Status anzeigen zulassen (Informationen für Problembehebungen) und die Option zum Beenden des Prozess.

Tray Icon

Initialer Aufruf

Wenn ein cardo auf dem Rechner geöffnet wird, meldet es sich am Launcher durch eine Websocket Request an.

Dabei wird auch versucht den Prozess der Browser-Anwendung zu ermitteln (diese wird für Fokus-Aktionen auf das Browser-Fenster verwendet).

Dazu werden die Prozesse auf dem Host-Rechner durchgegangen, z.Z. sind die Prozessnamen der folgenden Browser hinterlegt: firefox, iexplore, msedge, chrome, vivaldi, opera.

Dabei wird im Fenstertitel nach der Guid der cardo Sitzung gesucht, damit eine korrekte Zuordnung ermöglicht wird.

Starten der Anwendung

Wenn das Msi Setup verwendet wurde, dann wird ein Autostart Eintrag erstellt.

Läuft der Prozess nicht, dann kann dieser durch Ausführen des Befehls cardo4: (inkl. dem Doppelpunkt), z.B. via {Windows-Taste} + {R} => "cardo4:" {ENTER}, gestartet werden.

Kommt dann eine Meldung in der Form "Sie benötigen eine neue App zum Öffnen von cardo4", dann ist der Launcher nicht installiert, bzw. der Protokoll-Handler nicht in der Registry vorhanden. Rufen Sie ggf. das Setup neu auf.

Technische Betrachtung

Der Launcher wird als Windows Installer-Packet ausgeliefert und ist im Ordner "Tools" der cardo4 Installation zu finden.

Für den Start wird das .Net Framework 4.6 und die VCRedist16 (x64) benötigt. Normalerweise ist eine extra Installation nicht erforderlich. Im Problemfall installieren Sie die Komponenten bitte manuell.

Als Betriebssystem wird Windows 8 oder höher unterstützt.

Folgende Änderungen werden beim Setup am Rechner vorgenommen:

  1. Kopieren der ausführbaren Datei in den Ordner %ProgramFiles%\IDU IT+Umwelt GmbH\IduIT.Cardo4Launcher\IduIT.Cardo4Launcher.exe
  2. Erstellen des Registry-Key HKEY_CLASSES_ROOT\cardo4
  3. Erstellen eines des String-Wertes cardo4Launcher in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
  4. UrlAcl für den genannten Endpunkt für NT-AUTORITÄT\INTERAKTIV erstellen

Für die Schritte 2, 3 und 4 sind administrative Berechtigungen erforderlich.

Mit dem MSI wird das Programm für alle Nutzer des PC installiert und wird im globalen Autostart hinterlegt.

Der Launcher stellt einen kleinen HTTP Server zur Verfügung, dieser lauscht auf Websocket-Requests. Wenn cardo startet, dann versucht es sich mit diesem lokalen Server zu verbinden.

Der Http Server lauscht dabei immer an dem Endpunkt http://127.0.0.1:9494/

Durch die Bindung an das Protokoll "cardo4:" wird eine neue Instanz des Programms gestartet, dabei wird geprüft ob bereits eine Instanz läuft, ist dies der Fall, wird der Aufruf an die laufende Instanz weitergeleitet, wenn nicht wird der Launcher gestartet.

Die Kommunikation der Prozesse erfolgt über die vom ersten Prozess erstellte lokale NamedPipe mit dem Namen IduITcardo4Launcher_{sessionId} (sessionId ist die numerische Terminal-Session-Id, oder "d"). Die NamedPipe wird Read/Write Rechten für die LogonSId erstellt.

D.H. beim Starten des ersten Launcher-Prozess wird:

  • eine Bindung eines Http-Listeners am Endpunkt 127.0.0.1:9494 erstellt,
  • eine lokale NamedPipe mit dem Bezeichner IduITcardo4Launcher_x erstellt

Ggf. auftretenden Probleme könnten dann an fehlenden Nutzerberechtigungen liegen. Fragen Sie in diesem Fall bei Ihrem Netzwerkadministrator nach.

Beim Wechsel einer Benutzersitzung wird der Webserver und die NamedPipe beendet, beim Zurückwechseln in den Account wieder neu gestartet.

Der Resourcenverbrauch der Anwendung ist dabei minimal. Die Datei benötigt ca. 40 KB Plattenplatz auf dem Systemlaufwerk. Es werden keinerlei Daten auf dem Rechner gesammelt oder gespeichert oder außerhalb des Rechners übertragen. Der Hauptspeicherverbrauch liegt bei ca. 25 MB.

Terminalserver Umgebung

Durch die Verwendung eines festen Ports für den Websocket-Server sind beim Einsatz einer Terminalserverlösung Anpassungen am System erforderlich.

Es ist nicht möglich einen TPC Port an der gleichen IP (hier: 127.0.0.1) mehrfach zu binden.

Für diesen Zweck gibt es die Möglichkeit zur Konfiguration der "Remote Desktop IP Virtualization für Windows Server" oder für Citrix XenApp Virtual loopback.

Die Aktivierung der Remote-IP-Virtualisierung auf einem normalen Windows Server scheint nicht zu funktionieren.

Es gibt dazu einen Hinweis unter Remote Desktop IP Virtualization funktioniert nicht mehr mit Windows Server 2019

"Remote Desktop IP Virtualization is currently not working in Windows Server 2019. We are investigating this issue."

Pol Settings


Zuletzt geändert: 08.07.2020 09:25:26 (erstmals erstellt 16.09.2018)