2010-05-22 16 views

Respuesta

8

Puede utilizar SystemParametersInfo para establecer el fondo de escritorio. Esto debería funcionar de manera consistente en todas las versiones de Windows en las que se puede ejecutar su aplicación, sin embargo, requerirá alguna interoperabilidad.

Las siguientes declaraciones de interoperabilidad son lo que necesita

public const int SPI_SETDESKWALLPAPER = 20; 
public const int SPIF_UPDATEINIFILE = 1; 
public const int SPIF_SENDCHANGE = 2; 

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
public static extern int SystemParametersInfo(
    int uAction, int uParam, string lpvParam, int fuWinIni); 

que puede ser utilizado como este para cambiar el fondo de escritorio

SystemParametersInfo(
    SPI_SETDESKWALLPAPER, 0, "filename.bmp", 
    SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 
+0

Gran respuesta. Realmente útil gracias! –

1

Configura el fondo de pantalla actualizando el registro. Aquí hay un artículo de 2006 que explica cómo hacerlo. Los detalles pueden haber cambiado con las versiones más nuevas de Windows, pero el concepto debería ser el mismo. La versión del marco debe ser irrelevante.

http://blogs.msdn.com/coding4fun/archive/2006/10/31/912569.aspx

0

Tenga en cuenta que SystemParametersInfo incluso de vuelta verdad, si el archivo especificado ¡no existe! (en Windows 8 al menos)

Además, debe indicar la ruta completa al archivo, no solo una ruta relativa.

También en Windows 7 y posteriores, esto creará un nuevo tema y desactivará la reproducción de imágenes, por supuesto.

Cuestiones relacionadas