2010-05-22 4 views

Antwort

8

Sie können SystemParametersInfo verwenden, um den Desktop-Hintergrund zu setzen. Dies sollte bei allen Windows-Versionen, auf denen Ihre App ausgeführt werden kann, konsistent funktionieren, erfordert jedoch einige Interop-Vorgänge.

Folgende Interop Erklärungen sind, was Sie brauchen

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); 

, die wie folgt verwendet werden können, um die Tapete Desktop zu ändern

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

Große Antwort. Wirklich hilfreich, danke! –

1

Sie legen das Hintergrundbild fest, indem Sie die Registrierung aktualisieren. Hier ist ein Artikel aus dem Jahr 2006, der erklärt, wie es geht. Die Details können sich mit neueren Versionen von Windows geändert haben, aber das Konzept sollte identisch sein. Framework-Version sollte nicht relevant sein.

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

0

Beachten Sie, dass Systemparameters auch wahr zurück, wenn die angegebene Datei tut nicht existieren! (Mindestens Windows 8)

Außerdem müssen Sie der Datei den vollständigen Pfad angeben, nicht nur einen relativen Pfad.

Auch auf Windows 7 und höher wird dies ein neues Thema erstellen und Bild Shuffling natürlich deaktivieren.