Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Remote Terminal Session erkennen

  Alt 4. Feb 2011, 15:58
Deine Frage ist leider etwas unverständlich formuliert
Ja, ich probier's nochmal.
Es gibt folgende Rechner:
A - Windows Server 2003/Terminal Server, nach dem Neusprech von Microsoft heisst das nicht mehr Terminal Server sondern Remote Desktop Session Host.
B - Windows 7
C - Windows XP
Mein Programm muss je nach dem ob es auf einem Terminal Server oder auf einer Workstation läuft unterschiedlich reagieren (andere Pfade usw).

Szenario 1:
Anwendung läuft ganz normal auf Rechner B
Szenario 2:
Rechner C stellt eine RDP-Verbindung zu Rechner A her und startet dort meine Anwendung.
Szenario 3:
Benutzer von Rechner B braucht Hilfe. Deshalb verbindet sich Rechner C mit B und startet meine Anwendung.
Und jetzt denkt meine Anwendung sie würde auf einem Terminal Server laufen und reagiert falsch weil sie ja in Wirklichkeit auf einer Arbeitstation läuft.
Ich möchte also Szenario 2 von 3 unterscheiden können.

Ich könnte nun meine Funktion zur Erkennung der Betriebsart erweitern:
Delphi-Quellcode:
function IsServerOS:boolean;
begin
// rauszufinden ob wir auf einem Server OS laufen
// GetVersionEx

  Result := ...;
end;

function IsRemoteTerminalServerSession:Boolean;
const
  SM_REMOTESESSION = $1000; // in Windows.pas nicht enthalten
begin
  result := (GetSystemMetrics( SM_REMOTESESSION ) <> 0) and
    IsServerOS;
end;
Ich möchte die Funktion IsServerOS gerne vermeiden weil sie aufwändig (bei Delphi5 fehlen die nötigen Strukturen) und nicht sicher ist.
Andreas
  Mit Zitat antworten Zitat