Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Wallpaper ermitteln/setzen

  Alt 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;
  Mit Zitat antworten Zitat