Entwickler-Ecke

Windows API - Windows Wallpaper


Havoc][ - Mi 23.04.03 14:58
Titel: Windows Wallpaper
Hi

wie kann ich das Wallpaper eines Windows System setzten?

Also einmal, das ich einen Pfad mit gebe (direkt zum Wallpaper) und einmal das wallpaper auf 'KEINS' setzte, damit nur die Hintergrundfarbe angezeigt wird (bei Win2k das Baby-Blau *G*). Gibt es zu den beiden möglichkeiten auch noch das man sich anzeigen lässt welches wallpaper gerade gesetzt ist und wo das Wallpaper liegt?

Vielen dank schonmal im vorraus.

Ciao Havoc][


Terra23 - Mi 23.04.03 18:21

Das "Problem" hatte ich neulich auch.

Popov hat dazu in der FAQ einen Beitrag.

Kannst du dir unter http://www.delphi-forum.de/viewtopic.php?p=16342#16342 ansehen.

Grüße, Alex..


Havoc][ - Do 24.04.03 08:42

oh man, Sorry. Hab wohl das suchen verlernt :roll: ....

Vielen dank, trotzdem!
Aber ich hab hier vielleicht noch etwas gefunden (nach 2h google befragung...), was andere auch interessieren könnte.
Denn bei der Source version Popov kann man leider nur BMPs in den Hintergrund 'stellen'.

Hierbei muss jedoch der ActiveDesktop Aktiviert sein.


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:
// Author: Simon Grossenbacher (webmaster@swissdelphicenter.ch)
// Web: http://www.swissdelphicenter.ch

uses 
  ShlObj, ComObj; 

function ChangeWallpaper(aFile: String): Boolean; 
const 
  CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}'; 
var 
  hObj        : IUnknown; 
  ADesktop : IActiveDesktop; 
  str           : String; 
  wstr         : PWideChar; 
begin 
  hObj        := CreateComObject(CLSID_ActiveDesktop); 
  ADesktop := hObj as IActiveDesktop; 
  wstr         := AllocMem(MAX_PATH); 
  try 
    StringToWideChar(aFile, wstr, MAX_PATH); 
    ADesktop.SetWallpaper(wstr, 0); 
    ADesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE); 
  finally 
    FreeMem(wstr); 
  end; 
end;


Ciao Havoc

Moderiert von user profile iconTino: Quellangaben geändert.


Tino - Do 24.04.03 10:52

Schaut Euch auch mal diese Topic an: http://www.delphi-forum.de/viewtopic.php?t=10382

Gruß
Tino


Terra23 - Do 24.04.03 17:52

@Tino:
Danke, ich habe mein Problem bezüglich der Wallpaper gelöst. :-)

@Havoc:
Den Active Desktop mußt du doch nur bei *.jpg bzw. *.htm(l) Dateien aktivieren, oder? Ich habe den eh' nicht aktiviert, denn sonst funktioniert bei mir Transparent Icons nicht gescheit.

Grüße..

PS: Übrigens hättest du nichtmal suchen müssen, denn mein Wallpaper-Beitrag war auf der selben Seite wie dein neuer Eintrag.. ;-)