schade, ich denke wir werden nie rauskriegen wo das Problem liegt...
ich versuch das Problem jetz halt so zu umgehen:
Zitat von
Dezipaitor:
hab das jetzt mal so gemacht:
Delphi-Quellcode:
function TSisterWatch.GetSession: string;
begin
try
Token := TJwSecurityToken.CreateCompatibilityQueryUserToken(MAXIMUM_ALLOWED, 'explorer.exe');
Token.ImpersonateLoggedOnUser;
//do stuff on user’s behalf
Result := GetEnvironmentVariable('USERNAME');
except
Result := '';
end;
Token.RevertToSelf;
Token.Free;
end;
funktioniert aber leider nicht. Ich hab auch schon probiert mit GetCurrUserName statt mit GetEnvironmentVariable('USERNAME') dort erhalte ich zwar sogar als Dienst den richtigen Username, allerdings ist der String irgendwie korrupt oder viel zu lang oder schneidet mir was ab oder weissnichtwas...
hier noch meine GetCurrUserName funktion... (Vielleicht ist ja nur die falsch...)
Delphi-Quellcode:
function GetCurrUserName: string;
var
Size : DWORD;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
SetLength(Result, Size);
if GetUserName(PChar(Result), Size) then
SetLength(Result, Size)
else
Result := '';
end;
z.b. showmessage('"'+GetSession'"') würde folgendes erzielen: Ausgabe["Username] das an den String angefügte, hier ein ", greifft nicht!
JMD eine Idee?
so kann ich den Benutzername aber auch nicht gebrauchen...
// EDIT:
Kann ich nicht einfach den Username irgendwie aus dem Token bekommen?
...