AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Wie Wallpaper wechsel mitbekommen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Wallpaper wechsel mitbekommen ?

Ein Thema von turboPASCAL · begonnen am 26. Jun 2009 · letzter Beitrag vom 27. Jun 2009
Antwort Antwort
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Wie Wallpaper wechsel mitbekommen ?

  Alt 26. Jun 2009, 20:17
Hi,

wie kann man mitbekommen ob sich der Desktop-Wallpaper geändert hat ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

Re: Wie Wallpaper wechsel mitbekommen ?

  Alt 26. Jun 2009, 20:43
Meinst du jetzt Message? Der Pfad ist in der Registry und ist einfach zu ermitteln. Also ob es dafür eine Message gibt, weiß ich nicht, aber alle paar Sekunden den Pfad vergleichen wäre die einfachste Methoden.

HKEY_CURRENT_USER\Control Panel\Desktop\ >> Wallpaper
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#3

Re: Wie Wallpaper wechsel mitbekommen ?

  Alt 26. Jun 2009, 20:55
Nur ein Gedanke: wenn ich den Artikel zu MSDN-Library durchsuchenSystemParametersInfo richtig verstanden habe, wird (oder kann zumindest) ein Aufruf von WM_SETTINGCHANGE an alle Top-Level-Windows erfolgen. Wäre zumindest ein Ansatz, den man mal verfolgen könnte
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Wie Wallpaper wechsel mitbekommen ?

  Alt 26. Jun 2009, 21:57
Delphi-Quellcode:
private
  procedure WMSettingChange(var Msg : TMessage); message WM_SETTINGCHANGE;
end;

implementation

procedure TForm1.WMSettingChange(var Msg : TMessage);
begin
  if Msg.WParam = SPI_SETDESKWALLPAPER then
    Caption := 'Das Desktop-Wallpaper hat sich geändert!';
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

Re: Wie Wallpaper wechsel mitbekommen ?

  Alt 27. Jun 2009, 06:55
Zitat:
Meinst du jetzt Message?
Ja, natürlich. Warum hab ich das denn nicht dazu geschrieben ?
Man(n) wird alt...

Zitat von toms:
Delphi-Quellcode:
//...

procedure TForm1.WMSettingChange(var Msg : TMessage);
begin
  if Msg.WParam = SPI_SETDESKWALLPAPER then
    Caption := 'Das Desktop-Wallpaper hat sich geändert!';
end;

Hm, es funktioniert. Ich hatte zwei andere Varianten die das selbe Prinzip hatten aber nicht funktionierten.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Wie Wallpaper wechsel mitbekommen ?

  Alt 27. Jun 2009, 08:33
// Edit:

Es funktiomiert nicht. Jeden falls unter Win XP.

Code:
[color=#000080][b]procedure[/b][/color] TForm1.WMSettingChange([color=#000080][b]var[/b][/color] Msg : TMessage);
[color=#000080][b]begin[/b][/color]
[color=#ff0000] if Msg.WParam = SPI_SETDESKWALLPAPER then[/color][color=#008000] // Breakpoint[/color]
    GetActiveDesktopWallpaper;
[color=#000080][b]end[/b];[/color]

Hier kommt unter XP SP2/SP3 als Msg.WParam der Wert Null.
Mit Vista SP2 und Windows 7 ist dieser Wert wie erwartet gleich SPI_SETDESKWALLPAPER also 20.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Wie Wallpaper wechsel mitbekommen ?

  Alt 27. Jun 2009, 11:19
Im Zweifelsfall könntest Du immer noch den von Popov genannten Registry Schlüssel mit Hilfe von MSDN-Library durchsuchenRegNotifyChangeKeyValue überwachen lassen.
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:49 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