Feedback

C# - Klasse zum ändern des Desktophintergrund (Wallpaper)

Veröffentlicht von am 12/30/2006
(1 Bewertungen)
Eine Klasse zum ändern des Desktophintergrund. Es muss nur der Pfad zum Bild und eine Eigenschaft - Tiled, Centered oder Stretched - übergeben werden und das Hintergundbild (Wallpaper) wird geändert. Vor der Änderung wird überprüft ob das Bild auch vorhanden ist.
public class Wallpaper
{
    const int SPI_SETDESKWALLPAPER = 20;
    const int SPIF_UPDATEINIFILE = 0x01;
    const int SPIF_SENDWININICHANGE = 0x02;

    public Wallpaper()
    {
    }

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

    public enum Style : int
    {
        Tiled, Centered, Stretched
    }

    public void SetWallpaper(string path, Style style)
    {           
        if (System.IO.File.Exists(path))
        {
            RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);

            switch (style)
            {
                case Style.Stretched:
                    key.SetValue(@"WallpaperStyle", "2");
                    key.SetValue(@"TileWallpaper", "0");
                    break;
                case Style.Centered:
                    key.SetValue(@"WallpaperStyle", "1");
                    key.SetValue(@"TileWallpaper", "0");
                    break;
                case Style.Tiled:
                    key.SetValue(@"WallpaperStyle", "1");
                    key.SetValue(@"TileWallpaper", "1");
                    break;
            }
            SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
        }
        else
        {
            throw new System.IO.FileNotFoundException();
        }
    }
}
Abgelegt unter Wallpaper, Hintergrundild, Desktop.

1 Kommentare zum Snippet

Greenberet schrieb am 1/14/2008:
Achtung, Windows akzeptiert nur Bitmaps für den Hintergrund -> ihr müssts andere Bildformate noch in Bitmaps konvertieren
 

Logge dich ein, um hier zu kommentieren!