Desktop-Hintergrundbild ändern?!

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Final Griever.

    Desktop-Hintergrundbild ändern?!

    Hallo.
    Ich suche jetzt schon seit 1½ Stunden danach bei Google, MSDN hilft mir auch nicht…
    wie kann ich in einem VB-Code den Hintergrund ändern?
    Habe ein paar Codes gefunden, die alle nicht funktionieren, entweder kennt der das Importete nicht, oder dort ist auf einmal irgendeine Variable, von der nie was erwähnt wird…
    bitte, helft mir!
    hallo griever,

    in der registry kann du den pfad für das hintergrundbild einstellen.

    current_user/control panel/desktop

    dort findest du ein paar schlüssel

    1.wallpaper für das hintergrundbild
    2.tilewalpaper und wallpaperstyle für die art der darstellung

    probier einfach ein bischen rum

    gruss

    mikeb69

    mikeb69 schrieb:

    hallo griever,

    in der registry kann du den pfad für das hintergrundbild einstellen.

    current_user/control panel/desktop

    dort findest du ein paar schlüssel

    1.wallpaper für das hintergrundbild
    2.tilewalpaper und wallpaperstyle für die art der darstellung

    probier einfach ein bischen rum

    gruss

    mikeb69
    Danke schonmal.
    Habe zwar noch keinen Code geschrieben, aber es mal selbst geändert: Das aktuelle Hintergrundbild ändert sich nicht, habe es auch mit mehreren Formaten ausprobiert.
    Ertst, wenn ich manuell ein neues machen will, wird das alte abgerufen.
    Wie kann ich also den Desktop aktualisieren? F5 hilft nicht! ;)

    Alex2000 schrieb:

    Hai !
    Gibs jede menge Beispiele wie man Desctop Hintergrund ändert mit WIN API. Aber wahrscheinlich bist nicht in der Lage die VB 6 Code in VB NET umzusetzen.


    Mfg Alex
    Haargenau, weil ich erst vor einer nicht allzu kurzen Weile mit VB 2008 angefangen habe, meine erste Programmiersprache.

    Habe jetzt einmal

    VB.NET-Quellcode

    1. My.Computer.Registry.CurrentUser.DeleteSubKey("HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper")
    2. My.Computer.Registry.CurrentUser.CreateSubKey("HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper")
    3. My.Computer.Registry.CurrentUser.SetValue("HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper", "C:\Users\" & System.Environment.UserName & "\Desktop\Unbenannt.bmp")


    versucht, aber es wird mir Folgenedes gesagt:
    Eine Unterschlüsselstruktur kann nicht gelöscht werden, da der Unterschlüssel nicht vorhanden ist.

    Aber der Schlüssel IST doch vorhanden… :(

    PS: Mit Windows-API kenn ich mich gar nicht aus – ich weiß noch nicht einmal wirklich, was das ist ;)

    Visual Basic-Quellcode

    hallo griever,

    ich hab das schonmal gemacht und könnte schwören das es funktioniert hat.
    zumindest unter xp.

    im moment hab ich keinen plan wie das unter vista läuft.
    sorry

    gruss

    mikeb69
    Ok, habe es jetzt rausgefunden, wie man es verändert, habe oben ausversehen auf’s Falsche zugegriffen…

    VB.NET-Quellcode

    1. My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\Desktop", "WallPaper", "C:\Users\MaxMUstermann\Pictures\Unbenannt.jpg")


    Aber:
    Nachdem es geändert wurde, wird das Desktopbild nicht aktualisiert!
    nach nem neustart kommt das, bin mir sicher.

    Allerdings soll das ja direkt kommen.

    das problem hatt ich mal mit der symbolgröße.

    man muss entweder i-wie den explorer aktualisieren, den explorer abschießen und neustarten, oder den computer neustarten.
    | Keine Fragen per PN oder Skype.
    Zum Beispiel so:
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal pncMetrics As String, ByVal fuWinIni As Integer) As Integer
    Private Const SPI_SETDESKWALLPAPER = 20
    Private Const SPIF_UPDATEINIFILE = &H1
    Private Const SPIF_SENDWININICHANGE = &H2

    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, "C:\...", SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)

    foxm2k schrieb:

    Zum Beispiel so:
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal pncMetrics As String, ByVal fuWinIni As Integer) As Integer
    Private Const SPI_SETDESKWALLPAPER = 20
    Private Const SPIF_UPDATEINIFILE = &H1
    Private Const SPIF_SENDWININICHANGE = &H2

    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, "C:\...", SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)

    Sorry, nenn mich Noob, aber ich weiß nicht, wie ich den Code benutzen soll (also dass ich bei „C:\…“ den Pfad hinschreibe, ist schon klar)…
    Wenn ich ihn einbinde, wird dauernd gesagt, dass für SystemParametersInfo keine Deklaration vorhanden ist
    Hai !!
    Die Code funktioniert wie auf dem Butter geschmiert. Hab die Code von VB 6 in VB NET umgeändert. Plaziere auf der Form 2 Buttons und PictureBox, danach füge die Code ein:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal pncMetrics As String, ByVal fuWinIni As Integer) As Integer
    3. Private Const SPI_SETDESKWALLPAPER = 20
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. OpenFileDialog1.Filter = ("BMP-Grafiken (*.BMP)|*.BMP")
    6. OpenFileDialog1.ShowDialog()
    7. If OpenFileDialog1.FileName > "" Then
    8. PictureBox1.Load(OpenFileDialog1.FileName)
    9. End If
    10. End Sub
    11. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    12. If OpenFileDialog1.FileName > "" Then
    13. SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, _
    14. OpenFileDialog1.FileName)
    15. End If
    16. End Sub
    17. End Class



    PS: Bevor du mit komplexen Anwendungen anfängst lerne gründlich die Grundlagen der Programmierung und programmiere zuerst was einfacheres, wenn du soweit bist dann kannst was kompleziertes programmieren !

    Mfg Alex

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Alex2000“ ()