Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Cambiar wallpaper (https://www.clubdelphi.com/foros/showthread.php?t=80462)

seoane 11-06-2006 15:35:59

Cambiar wallpaper
 
Este codigo surgio cuando estaba encargado del mantenimiento de mas de 100 equipos, estos tenian que mostrar siempre el mismo fondo de pantalla, y los usuarios tenian muchas ganas de jugar. Los directivas de grupo para evitar el cambio fallan en diversas circunstancias (IExplorer, Vista previa) asi que corte por lo sano y como script de inicio de sesion coloque esto, que machaca cualquier configuracion previa y coloca el fondo correcto.
Código Delphi [-]
uses Registry, Jpeg;

procedure SetWallpaper(Original, Copia: string);
var
  Imagen: TPicture;
  Bitmap: TBitmap;
begin
  // Convertimos la imagen a bmp, y ajustamos su tamaño
  Imagen:= TPicture.Create;
  Bitmap:= TBitmap.Create;
  try
    Imagen.LoadFromFile(Original);
    Bitmap.Width:= GetSystemMetrics(SM_CXSCREEN);
    Bitmap.Height:= GetSystemMetrics(SM_CYSCREEN);
    Bitmap.Canvas.StretchDraw(Bitmap.Canvas.ClipRect,Imagen.Graphic);
    Bitmap.SaveToFile(Copia);
  finally
    Bitmap.Free;
    Imagen.Free;
  end;
  // Y ahora hacemos el cambio
  if FileExists(Copia) then
  begin
    with TRegistry.Create do
    begin
      RootKey:= HKEY_CURRENT_USER;
      if OpenKey('Control Panel\Desktop', FALSE) then
      begin
        WriteString('Wallpaper', Copia);
        WriteString('ConvertedWallpaper', Copia);
        WriteString('OriginalWallpaper', Copia);
        WriteString('TileWallpaper', '0');
        WriteString('WallpaperStyle', '2');
        CloseKey;
      end;
    end;
    SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar(Copia),SPIF_SENDCHANGE);
  end;
end;

Ejemplo de uso:
Código Delphi [-]
  SetWallpaper('d:\Fondo.jpg','d:\Copia.bmp');


La franja horaria es GMT +2. Ahora son las 01:26:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi