Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная Статьи Windows Как сменить обои на рабочем столе?

Как сменить обои на рабочем столе?

Оцените материал
(0 голосов)

Как сменить обои на рабочем столе?

uses
  ..., Registry;
 
procedure ChangeWallpaper( WallPath: string );
var
  Reg: TRegistry;
begin
   with TRegistry.Create do
   begin
      RootKey := HKEY_CURRENT_USER;
      OpenKey( 'Control Panel\Desktop', false );
      WriteString( 'Wallpaper', WallPath );
      CloseKey;
      Free;
   end;
   SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE );
end;

Более универсальный вариант

uses
  ..., Registry, ShlObj, ComObj;
 
procedure ChangeWallpaper( WallPath: string );
var
  Reg: TRegistry;
  ActiveDesktop: IActiveDesktop;
begin
   with TRegistry.Create do
   begin
      RootKey := HKEY_CURRENT_USER;
      OpenKey( 'Control Panel\Desktop', false );
      WriteString( 'Wallpaper', WallPath );
      CloseKey;
      Free;
   end;
   SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE );
   ActiveDesktop := CreateComObject( CLSID_ActiveDesktop ) as IActiveDesktop;
   ActiveDesktop.ApplyChanges( AD_APPLY_ALL or AD_APPLY_FORCE );
end;
Прочитано 6250 раз

Авторизация



Счетчики