Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
Turbo Delphi für Win32
|
Re: Wallpaper ermitteln/setzen
30. Sep 2005, 18:07
alexander hat hier einen Sourcen von Duffy gepostet:
Delphi-Quellcode:
//-----------------------------------------------------------------------//
//#######################################################################//
//## Procedure ChangeWallpaper: ##//
//#######################################################################//
//## Datum: Änderung: ##//
//## ====== ========= ##//
//## 10.07.1998 Initial Release ##//
//#######################################################################//
procedure ChangeWallpaper(BmpName: string; Tile: Boolean);
var
Registry: TRegIniFile;
begin
Registry := TRegIniFile.Create('Control Panel');
try
Registry.WriteString('Desktop', 'Wallpaper', BmpName);
if Tile then
begin
Registry.WriteString('Desktop', 'TileWallpaper', '1');
end
else
begin
Registry.WriteString ('Desktop', 'TileWallpaper', '0');
end;
finally
Registry.Free;
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;
Eine kleine Änderung von glkgereon und Khabarakh:
Delphi-Quellcode:
procedure ChangeWallpaper(BmpName: string; Tile: Boolean);
var
Registry: TRegIniFile;
begin
Registry := TRegIniFile.Create('Control Panel');
try
Registry.WriteString('Desktop', 'Wallpaper', BmpName);
Registry.WriteString('Desktop', 'TileWallpaper', Chr(Ord('0') + Ord(Tile))); //entsprechende Zeile
finally
Registry.Free;
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;
Noch eine Erweiterung von mir. Der Unterschied besteht darin, dass nicht nur Tiles verwendet werden können, sondern auch "Stretch" und "Center" (getestet unter WinXP):
Delphi-Quellcode:
// Parameter "Mode": 0 für Zentriert, 1 für Tiles (Nebeneinander) und 2 für Stretch (Strecken) (Zahlen jeweils als String)
procedure ChangeWallpaper(FileName: string; Mode: string);
var
Registry: TRegIniFile;
begin
Registry := TRegIniFile.Create('Control Panel');
try
Registry.WriteString('Desktop', 'Wallpaper', FileName);
Registry.WriteString('Desktop', 'WallpaperStyle', Mode);
finally
Registry.Free;
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;
|
|
Zitat
|