AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wallpaper und Windows 8+

Ein Thema von KodeZwerg · begonnen am 11. Okt 2018 · letzter Beitrag vom 14. Okt 2018
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#1

Wallpaper und Windows 8+

  Alt 11. Okt 2018, 11:42
Betriebssystem: Win 8,Win 8.1,Win 10
Hallo Gemeinde,

in einem mini-Projekt versuche ich zu ermitteln wie der aktuell benutzte Dateiname zum Desktop Hintergrund-Bild lautet.
Also Ergebnis sollte ein vollständiger Pfad + Dateiname sein.

Was ich hier in DP gefunden war ist folgender Beitrag von turboPASCAL:
Delphi-Quellcode:
function GetWallpaperBitmap: String;
const
  SPI_GETDESKWALLPAPER = $0073;
var
  wpFName: array [0..MAX_PATH] of Char;
begin
  if SystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, @wpFName, 0)
    then Result := String(wpFName)
    else Result := '';
end;
Das funktioniert mit meinem eigenen Windows 10 (noch ist alles so wie nach OS-Installation) wunderbar.

Ich fand eine Seite die einen völlig anderen Weg beschreitet und da frage ich mich ob die oben genannte Methode noch aktuell ist.
PowerShell Scripte wie man es heute wohl machen sollte.

Von daher meine Frage an alle die Windows 8 oder höher nutzen und eigene Hintergrundbilder verwenden,
erhaltet ihr mit obiger Funktion tatsächlich den Dateinamen oder klappt da was nicht?


Grüße
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 11:54
Klappt. Windows 10 1803.
  Mit Zitat antworten Zitat
old7
(Gast)

n/a Beiträge
 
#3

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 12:33
Klappt. Win8.1 und Win10 1809 (Build 17763.55).
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 13:17
Dankeschön fürs testen!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#5

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 13:17
Hmm..

auch unter W7

Sollte auch, da MS hier

https://docs.microsoft.com/en-us/win...arametersinfoa

auch dies beschreibt!

Würde es hierfür eine neue API geben, dann würde es ja hier beschrieben sein
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 13:22
Ich fand eine Seite die einen völlig anderen Weg beschreitet und da frage ich mich ob die oben genannte Methode noch aktuell ist.
Das Ausnutzen der Speicherortes in der DWK ist wohl ein offizielle Schnittstelle/weg.
Es funktioniert halt - Bis MS meint den Speicherkey zu ändern.

Dein Weg ist schon der Offizielle. Evtl. gibt es einen neueren COM/WinRT-Weg
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 14:59
Ich fand eine Seite die einen völlig anderen Weg beschreitet und da frage ich mich ob die oben genannte Methode noch aktuell ist.
PowerShell Scripte wie man es heute wohl machen sollte.
Das hast Du missverstanden. Das ist der Weg für Leute die keine richtige Programmiersprache zur Verfügung haben. (Scriptkiddies)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 15:28
ich holte mir damals immer über HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper den namen.
für mein eigenes windows 10 passt das immer noch.
nun bekam ich ne nachricht das dort was mit "Transcoded" nur noch dargestellt wird, also habe ich mich ein wenig schlau gemacht was damit gemeint sei.
mein versuch diesen HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache eintrag auszuwerten, da klappt was mit meiner umsetzung noch nicht so ganz bzw bezweifle ich meinen eigenen code.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  CDataValue: string = 'TranscodedImageCache';
  CKeyName: string = 'Control Panel\Desktop\';
var
  regist: TRegistry;
  KeyExists: boolean;
  vSize, p: integer;
  tmpStr, tmp: string;
begin
  regist := TRegistry.Create;
  try
    regist.RootKey := HKEY_CURRENT_USER;
    try
      KeyExists := regist.OpenKey(CKeyName, false);
      if (KeyExists) then
      begin
        vSize := regist.GetDataSize(CDataValue);
        if (vSize > 0) then
        begin
          SetLength(tmpStr, vSize);
          regist.ReadBinaryData(CDataValue, tmpstr[1], vSize);
          tmpStr := Copy(tmpStr, 13, vSize);
          Edit1.Text := tmpStr;
        end;
      end;
    except
      regist.CloseKey;
    end
  finally
    regist.Free;
  end;
end;
Da der Beitrag von turboPASCAL doch schon ein paar tage alt ist, wollte ich sichergehen, ist ja auch getan, Danke!

Danke auch an die weiteren Hinweise, siehste, ich hatte das bei msdn nicht gefunden oder nicht angestrengt genug gesucht
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 19:10
mist, so ganz scheint das mit der microsoft api nicht zu stimmen.
auf dem fremdrechner bekomme ich per api als result ein verzeichnis \AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper mein binär versuch schlägt da zwar fehl aber der pfad+name sei wohl enthalten inklusive vieler unicode zeichen.
also ist die zweite variante doch eher die korrekte methode, ich muss nur noch heraus finden wie der eintrag korrekt in text umgewandelt wird.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#10

AW: Wallpaper und Windows 8+

  Alt 11. Okt 2018, 20:06
Warum genau sucht du nach einer alternativen Möglichkeit oder warum verwendest du nicht deine Funktion?
function GetWallpaperBitmap: String;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr.
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