![]() |
Hintergrundbild ermitteln
Es wird ganz oft beschrieben wie ich das Hintergrundbild meines Desktops ändere.
Aber wie ermittle ich das aktuelle Bild? Das müsste ich ja irgendwie aus der Registry auslesen können. Weiss da wer eine Funktion für? Also z.B.
Delphi-Quellcode:
[edit=Luckie]Delphi-Tags korrigiert. Mfg, Luckie[/edit]
bild:TPicture
... bild:=getaktuellesbild; |
Re: Hintergrundbild ermitteln
Such dir den Wert in der Registry und dann kuckt dir mal Tregistry in der Hilfe an. ;)
|
Re: Hintergrundbild ermitteln
Ich hab ja schon versucht das in der Registry zu finden.
So weit ich weiss ist das ja unter HKEY_CURRENT_USER/Control_Panel/Desktop aber da hab ich mehrere gefunden. Irgendwie nur nicht das Rcihtige :gruebel: |
Re: Hintergrundbild ermitteln
Zitat:
|
Re: Hintergrundbild ermitteln
ich blick bei der registry irgendwie überhaupt nicht durch
mit welchem befehl komm ich denn jetzt zum beispiel an das hintegrundbild? HKEY_CURRENT_USER/Control_Panel/Desktop/wallpaper |
Re: Hintergrundbild ermitteln
Kuck dir aml in der Hilfe TRegistry an und ganz besonders die Methode TRegistry.ReadString.
|
Re: Hintergrundbild ermitteln
Also ich würde das folgendermaßen machen (angelehnt an das
![]()
Delphi-Quellcode:
Das Problem bei der Sache ist das als Wert immer (ausser wenn du kein Hintergrundbild definiert hast) der Wert:
uses Registry;
procedure TForm1.FormCreate(Sender: TObject); var regist: TRegistry; begin regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; try regist.OpenKey('Control Panel\Desktop\', false); Edit1.Text := regist.ReadString('Wallpaper'); except Edit1.Text := ('Fehler beim lesen'); end; regist.free; end; C:\Dokumente und Einstellungen\<Benutzername>\Lokale Einstellungen\Anwendungsdaten\Microsoft\Wallpaper1 .bmp herauskommen wird, da sich Windows das Hintergrundbild das du auswählst immer dorthin kopiert. |
Re: Hintergrundbild ermitteln
Das war genau das was ich gesucht habe!
Vielen Dank :) |
Re: Hintergrundbild ermitteln
Besser ist aber das:
Delphi-Quellcode:
Das except ist unnötig, OpenKey liefert True zurück, wenn es geklappt hat. Und in Helpliners Code wird bei einem Fehler das TRegistry Objekt nicht wieder freigegeben.
uses
Registry; function GetWallpaper: String; var s: String; regist: TRegistry; begin s := ''; // wir wollen nur lesen regist:=TRegistry.Create(KEY_READ); try regist.RootKey:=HKEY_CURRENT_USER; // nur weitermachen, wenn Schlüssel geöffnet werden konnte // except hier unnötig if regist.OpenKey('Control Panel\Desktop\', false) then s := regist.ReadString('WallPaper'); finally // regist Objekt auf alle Fälle wieder freigeben FreeAndNil(regist); end; result := s; end; procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetWallpaper(); end; |
Re: Hintergrundbild ermitteln
HI!
Das mit dem Pfad kann ich leider nicht bestätigen. Ich habe z.B. momentan das Hintergrundbild "Grüne Idylle". Das Bild Wallpaper1.bmp ist aber ein ganz anderes. Ciao fkerber |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 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 by Thomas Breitkreuz