cardo4 Launcher

Beim cardo4 Launcher handelt es sich um ein Desktop-Programm, welches lokal auf dem Windows-PC des Anwenders installiert werden kann. Die Verwendung ist optional. Diese Möglichkeit steht ab 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 ausschließlich als 64-Bit Version verfügbar.

Wozu?

Der Launcher unterstützt die browserbasierte Anwendung cardo4 in zwei Szenarien, die sonst nur mit Komforteinbußen oder gar nicht möglich wären.

  • Kommunikation aus Desktop-Programmen zu cardo

    cardo verfügt über recht gute Möglichkeiten zur "Fernsteuerung (cardo.COM)". Es können durch URL-Aufrufe bestimmte Aktionen in der aktuellen Browsersitzung ausgeführt werden, bspw. eine cardo4 Anwendung starten, Laden einer gespeicherten Sitzung, Starten der Karte mit Hervorhebung eines bestimmten Datensatzes 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 Fenster stehen.

    Genau hier setzt eine der Funktionen des Launchers an. Statt des Browsers wird für die Aufrufe der Launcher angesteuert, der die Informationen intern direkt an das cardo4 weitergeben kann.

    Dafür werden die Aufrufe wie gehabt formuliert, jedoch noch zusätzlich mit dem Protokoll-Prefix cardo4: versehen.

    Beispiel:

    "normaler" Aufruf über den Browser:

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

    Neu - der gleiche Aufruf, mit vorangestelltem cardo4-Protokoll:

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

    Aus guten Gründen ist es praktisch nicht möglich, aus einem Browser heraus direkt ein Programm auf dem Desktop zu starten. In allen Browsern kann nur der Download einer Batch-Datei angeboten werden, die den Startbefehl und ggf. Parameter zum Aufruf eines Desktop-Programms enthält.

    Steht der Launcher zur Verfügung, kann der Startbefehl für das Desktop-Programm über den Launcher geleitet werden, was eine deutlich bessere Nutzererfahrung bedeutet.

    Im cardo erfolgt die Konfiguration solcher Aufrufe in den Optionen einer Sachdatentabelle mittels der Aktion "Lokales Program starten". Je nach erkannten Umständen wird dann die bestmögliche Variante zur Ausführung dieser Aktion gewählt (cardo4 Launcher > ActiveX > Batch-Datei).

Installation

Das Setup kann im Informationsdialog in cardo unter "Mein cardo" => "cardo4 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 selbstständig, der angedrohte Neustart ist nicht erforderlich.

Erscheinungsbild auf dem PC des Nutzers

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

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

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

Einstellungen

Wenn der Launcher cardo startet (d. h. die Url absetzt) erfolgt dies per Shell-Execute, was dazu führt, dass der auf dem Rechner eingerichtete Standardbrowser gestartet wird.

Wenn hier ein anderer Browser verwendet werden soll, dann kann seit der Version 2.1 in einer XML-Einstellungsdatei der vollständige Pfad zum gewünschten Browser (Exe-Datei) hinterlegt werden.

Eine Option diese Einstellung vorzunehmen ist in der cardo Oberfläche integriert:

LauncherSettings0820.png

Alternativ kann die Xml-Datei direkt bearbeitet werden.

Speicherort: C:\ProgramData\IDU_IT+Umwelt_GmbH\IduIT.Cardo4Launcher\settings.xml

C:\ProgramData ist hier nur beispielhaft. Intern entspricht dies dem Betriebssystem-Ordner SpecialFolder.CommonApplicationData und ist ggf. betriebssystemspezifisch unterschiedlich.

Bsp. Inhalt:

<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <BrowserExecutable>C:\Program Files (x86)\Google\Chrome\Application\chrome.exe</BrowserExecutable>
 <ThriftyLog>false</ThriftyLog>
</Settings>

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 cardo4 startet, dann versucht es sich mit diesem lokalen Server zu verbinden.

Der Endpunkt des Http-Server ist dabei immer http://127.0.0.1:9494/

Der cardo-Launcher ist als Anwendung für das Protokoll `cardo4:\ registriert. Bei Aufrufen dieses Protokolls 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 und die neu gestartete Instanz direkt wieder geschlossen. Anderenfalls verbleibt die gestartete Instanz als primäre Launcher-Instanz bestehen.

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

    1. beim Starten des ersten Launcher-Prozess wird:
  • eine Bindung eines Http-Listeners am Endpunkt 127.0.0.1:9494 erstellt,
  • eine lokale Named Pipe mit dem Bezeichner IduITcardo4Launcher_x erstellt

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

Beim Wechsel einer Benutzersitzung wird der Webserver und die Named Pipe beendet und beim Zurückwechseln in die Benutzersitzung 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 TCP Port an der gleichen IP-Adresse (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: 15.04.2024 10:11:24 (erstmals erstellt 18.03.2024)