Terminalsitzung erkennen
Hallo zusammen,
wie kann ich erkennen, ob ein Programm in einer Terminalsitzung (Citrix) ausgeführt wird? Ich habe leider keinen Ansatz und bisher nichts brauchbares gefunden. Ein "Schubs" in die richtige Richtung würde schon helfen... Gruß, Arno |
Re: Terminalsitzung erkennen
Wenn Client von Workstation abweicht.
|
Re: Terminalsitzung erkennen
Hallo,
der SDK widmet diesem Thema eine Seite - Microsoft empfiehlt ab XP folgende Vorgehensweise:
Delphi-Quellcode:
Freundliche Grüße
const
SM_REMOTESESSION = $1000; function IsRemoteSession: Boolean; begin Result := GetSystemMetrics( SM_REMOTESESSION ) <> 0; end; |
Re: Terminalsitzung erkennen
Vielen Dank für die Antworten.
Der Weg über GetSystemMetrics ist schon mal nicht schlecht. Eine allgemeine Aussage Terminalsitzung ja/nein lässt sich damit tätigen, aber leider nicht, ob das Programm in einer Citrix-Umgebung läuft. Ein anderer Tipp bezog sich auf die Umgebungsvariablen, daher sieht meine Implementation jetzt so aus:
Delphi-Quellcode:
const
ENVIRONMENT_VARIABLENAME = 'SESSIONNAME'; function IsICASession: boolean; var Sessionname: string; begin SetLength(Sessionname, 8 * 1024); SetLength(Sessionname, Windows.GetEnvironmentVariable(PChar(ENVIRONMENT_VARIABLENAME), PChar(Sessionname), Length(Sessionname))); result := Pos('ICA-', Uppercase(Sessionname)) <> 0; end; Gruß, Arno |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz