Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Wallpaper und Windows 8+ (https://www.delphipraxis.net/198188-wallpaper-und-windows-8-a.html)

HolgerX 14. Okt 2018 13:24

AW: Wallpaper und Windows 8+
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..

Hab mal noch nen bisschen recherchiert:

Ab Windows 8 gibt es IDesktopWallpaper, damit ist es möglich, nicht nur 'das' Wallpaper-File auszulesen, sondern je Monitor.

Anbei ein Testprogram.

Habe mir hierfür die benötigten Deklarationen zusammen geschrieben, so das nicht die ganze Win32 API für ShObjIdl eingebunden werden muss.

Zusätzlich habe ich deine Funktion für die Registry noch mal 'verschönert' ;)


(Quelle WindowsAPI : https://github.com/CMCHTPC/WindowsAPI )

(Das Testtool ist mit Delphi 6 erstellt und auf Windows 8.1 getestet worden)

KodeZwerg 14. Okt 2018 14:17

AW: Wallpaper und Windows 8+
 
ich bin baff!! super leistung holger, wie du nun den cache ausliest, als teil eines records, das finde ich echt genial!!!
plus dazu noch einen völlig neue methode mal so reingezaubert, echt toll recherchiert und bestens umgesetzt.
ich bin mehr als begeistert!!!
habe es noch nicht versucht selbst zu kompilieren, deine .exe zeigts mir ja bestens an =)

wobei beim lesen mir eine sache auffällt.
Delphi-Quellcode:
procedure TForm1.ButtonRegClick(Sender: TObject);
var
  s : string;
begin
  s := GetWallpaperName;

  if Pos('',s) > 0 then // <<<--- gehört da nicht TranscodedWallpaper noch rein? also
  if (Pos('transcodedwallpaper',LowerCase(s)) > 0) then

    Edit1.Text := GetWallpaperCache
  else
    Edit1.Text := s;
end;
edit
also um das was ich wollte zu erreichen muss diese änderung rein.
sonst kommt als Registry ergebnis
Delphi-Quellcode:
...\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper
mit änderung erhalte ich wieder das gewünschte, IDesktopWallpaper funktioniert bestens, sowie als auch.

HolgerX 14. Okt 2018 17:29

AW: Wallpaper und Windows 8+
 
Zitat:

Zitat von KodeZwerg (Beitrag 1415729)
Delphi-Quellcode:
procedure TForm1.ButtonRegClick(Sender: TObject);
var
  s : string;
begin
  s := GetWallpaperName;

  if Pos('',s) > 0 then // <<<--- gehört da nicht TranscodedWallpaper noch rein? also
  if (Pos('transcodedwallpaper',LowerCase(s)) > 0) then

    Edit1.Text := GetWallpaperCache
  else
    Edit1.Text := s;
end;

Hast recht, ist leider ein Flüchtigkeitsfehler, da ich parallel nach IDesktopWallpaper am Suchen war ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz