Zmiana tapety pulpitu

0

Szukam i szukam, a znalazłem tylko takie coś

  S:='tapeta.bmp';
  SystemParametersInfo(SPI_SETDESKWALLPAPER,0, PChar(S),
                    SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);

Niestety działa tylko z plikami bmp. Jak ustawić tapetę w formacie jpg? Dopisanie modułu jpeg nic nie pomaga.

0

słabo szukałeś:

  uses
    Registry, WinProcs;
  ...
  procedure SetWallaper(sNewWallpaper: string; bTile: Boolean);
  begin
    with TRegistry.Create do
      try
        OpenKey('Control PanelDesktop', True);
        WriteString('Wallpaper', sNewWallpaper);
        if bTile then
          WriteString('TileWallpaper', '1')
        else
          WriteString('TileWallpaper', '0');
        CloseKey;
      finally
        Free;
      end;

    { Let Windows know that we changed a system parameter }
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(sNewWallpaper), SPIF_SENDWININICHANGE);
  end;

a potem musisz fprocedure wykorzystać poprzez:

  
  SetWallpaper('C:Windowssetup.bmp', False);

działa niby też z jpg i gif jak było napisane :
http://www.delphifaq.net/how-to-change-the-desktop-wallpaper/

0
daktyl500 napisał(a)

działa niby też z jpg i gif jak było napisane :
http://www.delphifaq.net/how-to-change-the-desktop-wallpaper/

Działa tylko jak ActiveDesktop jest włączony. A jak włączyć go przez Delphi?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.