feat: initiale Version 0.1.0 des MSTSC Script Hooks
- 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
This commit is contained in:
@@ -5,11 +5,28 @@
|
||||
namespace hook::protocol
|
||||
{
|
||||
// Der Dynamic-Virtual-Channel-Name muss auf Client und Terminalserver identisch sein.
|
||||
// DVC-Namen dürfen laut WTSVirtualChannelOpenEx bis MAX_PATH lang 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user