- Native x64 MSTSC-DVC-Erweiterung für lokalen Programmstart - Automatischer Script-/Programmstart bei RDP-Verbindungsaufbau - Separater Programmstart über Trigger innerhalb der RDP-Sitzung - Bidirektionaler DVC zur Ermittlung des lokalen Client-Hostnamens - SIOMIN-Trigger zur Anbindung lokaler Sidexis-Installationen - SIOMIN-Datensatzlängen und Hostname-Felder bytegenau angepasst - Temporäre SIOMIN-Einträge nach erfolgreicher Übernahme bereinigt - Native Win32-Konfigurationsoberfläche ohne .NET-Abhängigkeit - Mehrfachstartschutz und optionaler unsichtbarer Programmstart - Debug- und Plugin-Logging ergänzt - RemoteVDDS-Anwendungsfall integriert - Installer/Registrierung des MSTSC-Plugins über Client-Konfigurator - Techniker-, Entwickler- und Projektdokumentation ergänzt - Proprietäre Lizenz für Copyright Patrick Gniza hinzugefügt
33 lines
1.7 KiB
C++
33 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
|
|
namespace hook::protocol
|
|
{
|
|
// Der Dynamic-Virtual-Channel-Name muss auf Client und Terminalserver identisch sein.
|
|
inline constexpr char kChannelName[] = "plandent::mstsc-script-hook";
|
|
|
|
// Absichtlich ein festes Protokollkommando ohne Pfad/Argumente.
|
|
// Der Terminalserver kann damit nur den lokal vorkonfigurierten Start anfordern.
|
|
inline constexpr char kStartMessage[] = "PLANDENT_MSTSC_HOOK/1 START";
|
|
inline constexpr std::size_t kStartMessageLength = sizeof(kStartMessage) - 1;
|
|
|
|
// START wird quittiert. Die Server-EXE wartet auf diese Antwort, bevor sie den
|
|
// DVC schliesst. Dadurch geht die START-Nachricht nicht durch ein zu fruehes
|
|
// Schliessen des kurzlebigen Kanals verloren.
|
|
inline constexpr char kStartOkResponse[] = "PLANDENT_MSTSC_HOOK/1 START_OK";
|
|
inline constexpr std::size_t kStartOkResponseLength = sizeof(kStartOkResponse) - 1;
|
|
|
|
inline constexpr char kStartFailedResponse[] = "PLANDENT_MSTSC_HOOK/1 START_FAILED";
|
|
inline constexpr std::size_t kStartFailedResponseLength = sizeof(kStartFailedResponse) - 1;
|
|
|
|
// Abfrage des tatsaechlichen Hostnamens des lokalen RDP-Clients.
|
|
// Der Name wird direkt auf dem Client vom Plugin ermittelt und nicht aus
|
|
// CLIENTNAME/COMPUTERNAME der Remotesitzung uebernommen.
|
|
inline constexpr char kGetClientHostnameMessage[] = "PLANDENT_MSTSC_HOOK/1 GET_CLIENT_HOSTNAME";
|
|
inline constexpr std::size_t kGetClientHostnameMessageLength = sizeof(kGetClientHostnameMessage) - 1;
|
|
|
|
inline constexpr char kClientHostnameResponsePrefix[] = "PLANDENT_MSTSC_HOOK/1 CLIENT_HOSTNAME ";
|
|
inline constexpr std::size_t kClientHostnameResponsePrefixLength = sizeof(kClientHostnameResponsePrefix) - 1;
|
|
}
|