Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#27

Re: Eigener Dienst -> Speicherauslastung wächst und wächs

  Alt 22. Apr 2008, 14:17
schade, ich denke wir werden nie rauskriegen wo das Problem liegt...

ich versuch das Problem jetz halt so zu umgehen:

Zitat von Dezipaitor:
Du kannst auch schneller an den Benutzernamen der Session 0 herankommen.
Siehe http://blog.delphi-jedi.net/2008/04/...m-a-service-2/
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?

...
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat