Delphi-Help

Главная Статьи 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;
Прочитано 4553 раз

Авторизация



Счетчики