Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Welcher Benutzer ist angemeldet?

  Alt 13. Jan 2004, 14:27
Schreib in der Registry in den HKCU Zweig, der ist für jeden Benutzer spezifisch. Und leg die Ini-Datei nicht im Programm-Order ab, sondern unter "Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten\<Dein Programmname>" dann hat jeder User seine eigene Ini-Datei und du hast keine Probleme mit Benutzern, die nicht in das Programmverzeichnis schreiben dürfen. Den Ordner bekommst du mit:
Delphi-Quellcode:
function GetShellFolder(CSIDL: integer): string;
var
  pidl: PItemIdList;
  FolderPath: string;
  SystemFolder: Integer;
begin
  FolderPath := '';
  SystemFolder := CSIDL;
  if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
  begin
    SetLength(FolderPath, MAX_PATH);
    SHGetPathFromIDList(pidl, PChar(FolderPath));
    SetLength(FolderPath, lstrlen(PChar(FolderPath)));
  end;
  Result := FolderPath;
end;
Als CSIDL gibst du CSIDL_LOCAL_APPDATA an, entspricht $1C, falls die Konstante nicht bekannt sein sollte.

Ansonsten den aktuell angemeldeten User bekommst du mit:
Delphi-Quellcode:
function GetUser: string;
const
  UNLEN = 256; // Maximum user name length (LmCons.h)
var
  Size: DWORD;
begin
  Size := UNLEN + 1;
  SetLength(Result, Size);
  if GetUserName(PChar(Result), Size) then
    SetLength(Result, Size)
  else
    Result := '';
end;
Willst du alle Benutzer haben, musst du auf spezielle NT-API Funktionen zurückgreifen. Eien Implementation dafür findest du auf meiner Seite: http://www.luckie-online.de/downloads/ -> NTUser.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat