![]() |
Logo des angemeldeten Benutzers auslesen
turboPASCALverdeutlich mit
![]() Die Symbole der Benutzer werden alle im Ordner \Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\User Account Pictures abgelegt. Der Dateiname des Bildes ist immer so aufgebaut: <Benutzernme>.bmp Da Windows nicht immer auf der Partition C liegen muss, wird das Anwendungsdaten-Verzteichnis mit folgender Funktion ermittelt:
Delphi-Quellcode:
Nun haben wir das Verzeichnis, es fehlt also noch der Dateiname, den wir über den Namen des angemeldeten Benutzers erhalten, den wir wie folgt auslesen können:
uses
ShlObj; function TForm1.CommonDataPath: string; const CSIDL_COMMON_APPDATA = $0023; // All Users\Application Data var Path: array [0..1024] of char; begin if SHGetSpecialFolderPath(Handle, Path, CSIDL_COMMON_APPDATA, TRUE) then Result := String(Path) else Result := ''; end;
Delphi-Quellcode:
Nun muss nur noch der komplette Pfad zum Symbol zusammengesetzt werden:
function GetCurrentUserName: String;
var pcUserName : pChar; // temporary storage dwMaxChars : dWord; // length parameter const MAXCHARS = 255; // max length begin dwMaxChars := MAXCHARS; GetMem(pcUserName, MAXCHARS + 1); if GetUserName(pcUserName, dwMaxChars) then Result := String(pcUserName) else Result := ''; FreeMem(pcUserName); end;
Delphi-Quellcode:
Hier ein Beispiel, das zeigt, wie man dieses Symbol in einem TImage anzeigen lassen kann. Den Benutzernamen könnt ihr natürlich auch ausgeben lassen, da diesen die Funktion GetCurrentUserName zurück gibt.
UserAccPicPath := CommonDataPath + '\Microsoft\User Account Pictures\' +
GetCurrentUserName + '.bmp'
Delphi-Quellcode:
Anmerkung:
var
LgPath: string; UserName: string; begin UserName := GetCurrentUserName; LgPath := CommonDataPath + '\Microsoft\User Account Pictures\' + UserName + '.bmp'; if FileExists(LgPath) then begin Image1.Picture.Bitmap.Handle := LoadImage(0, PChar(LgPath), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); end else ShowMessage(format('%s'#13#10'"%s"', ['Datei nicht gefunden:', LgPath])); end; Wer die Jedi VCL installiert hat, kann auch die Komponente TJvComputerInfoEx dafür nutzen. [edit=Luckie]Dreckfuhler korrigiert. Mfg, Luckie[/edit] [edit=Matze]Anmerkung eingefügt. MfG, Matze[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz