Thema: Delphi Frage zu JWSCL / JEDI´s

Einzelnen Beitrag anzeigen

shmia

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

Re: Frage zu JWSCL / JEDI´s

  Alt 10. Jul 2008, 15:43
Die Funktion WTSGetActiveConsoleSessionId gehört zur Terminal Services API und ist in älteren Windows Versionen sicher nicht in der kernel.dll enhalten.
Die MSDE sagt: "Requires Windows Vista or Windows XP"

Es gibt 3 Varianten, wie man mit dem Problem umgehen kann: die Richtige, die Falsche und die ganz Falsche!

ganz Falsch:
die Funktion wird einfach statisch gelinkt.

Falsch:
man fragt zuerst die Windows Version ab. Wenn die Windows Version >= Win 2000 (nur ein Bespiel), dann geht man davon aus, dass WTSGetActiveConsoleSessionId vorhanden ist.

Richtig:
Man ignoriert die Windows Version und holt die Einsprungadresse mit GetProcAddress().
Bekommt man nil zurück (und dass muss man immer abfragen) ist die Funktion eben nicht verfügbar
und das Programm muss seine Funktionalität einschränken (Graceful degradation)
Andreas
  Mit Zitat antworten Zitat