Entwickler-Ecke
Windows API - Benutzerbild ermitteln
Dezipaitor - Mi 26.03.08 01:21
Titel: Benutzerbild ermitteln
Hi,
ich suche eine Möglichkeit das Bild der Benutzers zu ermitteln, dass er beim EasyLogin (FUS) sehen kann. Bei Vista sieht man das Bild auch halb über dem geöffneten Starmenü. Die Standardbilder sind z.b. Katze und Schachfigur.
Weiß das jemand?
thx
CROSS [
http://www.delphipraxis.net/post863718.html]
.#R4id - Mi 26.03.08 03:24
Hi
Dezipaitor :wave:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| function TForm1.GetUserName(): string; var Buffer: array [0..MAX_COMPUTERNAME_LENGTH + 1] of Char; Size: DWord; begin Size := Pred(SizeOf(Buffer)); Windows.GetUserName(Buffer, Size); Result := StrPas(Buffer); end;
function TForm1.GetUserPicture(): TBitmap; var CommonDataPath, UserName: string; begin Result := TBitmap.Create;
UserName := GetUserName; CommonDataPath := 'C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\User Account Pictures\' + UserName + '.bmp';
if FileExists(CommonDataPath) then begin Result.Handle := LoadImage(0, PChar(CommonDataPath), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); end else ShowMessage(Format('%s'#13#10'"%s"', ['File not found:', CommonDataPath])); end;
procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap := GetUserPicture; end; |
matze - Mi 26.03.08 09:27
ja vielleicht sollte man aber den Pfad nicht hardcoden, damit das dann auch unter Vista läuft :roll:
Dezipaitor - Mi 26.03.08 13:27
Danke für den Aufwand.
Leider gibt es den Pfad (wenn Virtualisierung aus) und diese Datei (wenn Virtualisierung an) unter Vista nicht.
.#R4id - Mi 26.03.08 13:47
Tut mir wirklich leid, aber ich habe nur Windows XP, deshalb kann ich dir leider nicht sagen, wo bei Vista diese Datei liegt. :(
.#R4id - Mi 26.03.08 13:56
Du könntest es aber so versuchen:
:arrow: TJvComputerInfoEx auf die Form
und dann:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| function TForm1.GetUserName(): string; var Buffer: array [0..MAX_COMPUTERNAME_LENGTH + 1] of Char; Size: DWord; begin Size := Pred(SizeOf(Buffer)); Windows.GetUserName(Buffer, Size); Result := StrPas(Buffer); end;
function TForm1.GetUserPicture(): TBitmap; var CommonDataPath, UserName: string; begin Result := TBitmap.Create;
UserName := GetUserName; CommonDataPath := JvComputerInfoEx1.Folders.CommonAppData + '\Microsoft\User Account Pictures\' + UserName + '.bmp';
if FileExists(CommonDataPath) then begin Result.Handle := LoadImage(0, PChar(CommonDataPath), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); end else ShowMessage(Format('%s'#13#10'"%s"', ['File not found:', CommonDataPath])); end;
procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap := GetUserPicture; end; |
Dezipaitor - Mi 26.03.08 14:27
File not found:
"C:\ProgramData\Microsoft\User Account Pictures\Dezipaitor.bmp"
.#R4id - Mi 26.03.08 14:31
Hm...
Ich hab die Datei mit der Windows Suche gefunden:
Versteckte Ordner und System Dateien einblenden und dann unter Bildern nach "#username#.bmp" (#username# in deinen namen ändern) suchen.
Irgentwann (vllt. auch nicht) findest du die Datei und kannst sie so laden!
Dezipaitor - Mi 26.03.08 15:24
Du verwendest nicht Vista, oder?
.#R4id - Mi 26.03.08 20:20
.#R4id hat folgendes geschrieben: |
| ... aber ich habe nur Windows XP, deshalb kann ich dir leider nicht sagen, wo bei Vista diese Datei liegt. |
Klartext: Nein, nur WinXP Prof.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!