Versuch mal
WTSGetActiveConsoleSessionId. Existiert allerdings erst seit Vista die
API.
Hatte ich damals in folgender Form verwendet, um den aktiven Benutzer aus einem Service heraus abzufragen:
Delphi-Quellcode:
class function TServiceHelper.QueryActiveSessionId: DWord;
var
WTSGetActiveConsoleSessionId: function: DWord; stdcall;
begin
Result := 0;
@WTSGetActiveConsoleSessionId :=
GetProcAddress(LoadLibrary('kernel32.dll'), 'WTSGetActiveConsoleSessionId');
if Assigned(@WTSGetActiveConsoleSessionId) then
begin
Result := WTSGetActiveConsoleSessionId;
end;
end;
Edit:
Achso ganz vergessen ... danach brauchst du natürlich noch
WTSQuerySessionInformation mit WTSUserName InfoClass.