
01.12.2008, 21:53
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
см класс TRegistry.
А вообще вот код из моего проекта:
Код:
procedure TMainForm.SetWallpaper(AWallpaperStyle : TWallpaperStyle);
var
OldWallpaperFile : String;
OldWallpaperStyle : String;
OldTileWallpaper : String;
WallpaperFile : String;
Bmp : TBitmap;
Reg : TRegistry;
begin
OldWallpaperFile := '';
WallpaperFile := GetWindowsFolerPath + 'ADPV Wallpaper.bmp';
Bmp := TBitMap.Create;
Try
MakeWallpaperBitmapFromImage(Bmp, AWallpaperStyle);
Bmp.SaveToFile(WallpaperFile);
Finally
Bmp.Free;
End;
Reg := TRegistry.Create;
If Reg.OpenKey( '\Control Panel\Desktop', True) Then
Begin
// Save old values
If Reg.ValueExists('Wallpaper') Then OldWallpaperFile := Reg.ReadString('Wallpaper');
If (OldWallpaperFile <> '') And (OldWallpaperFile <> WallpaperFile) Then
Begin
If Reg.ValueExists('WallpaperStyle') Then OldWallpaperStyle := Reg.ReadString('WallpaperStyle') Else OldWallpaperStyle := '2';
If Reg.ValueExists('TileWallpaper') Then OldTileWallpaper := Reg.ReadString('TileWallpaper') Else OldTileWallpaper := '0';
Reg.WriteString('OldWallpaper',OldWallpaperFile);
Reg.WriteString('OldTileWallpaper',OldTileWallpaper);
Reg.WriteString('OldWallpaperStyle',OldWallpaperStyle);
End;
// Write new values
If AWallpaperStyle = wpsTile
Then Reg.WriteString( 'TileWallpaper', '1' )
Else Reg.WriteString( 'TileWallpaper', '0' );
If AWallpaperStyle = wpsStretch
Then Reg.WriteString('WallpaperStyle', '2')
Else Reg.WriteString('WallpaperStyle', '0');
Reg.CloseKey;
End;
Reg.Free;
SystemParametersInfo(SPI_SetDeskWallpaper, 0, PChar(WallpaperFile),SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE);
end;
|