2008-09-17 11 views
3

Ich habe an einigen Stellen gelesen, dass das Desktop-Hintergrundbild auf ein HTML-Dokument eingestellt werden kann. Hat jemand Erfolg gehabt, es programmatisch zu ändern?Windows Wallpaper: nicht nur BMPs?

Das folgende Snippet von VB6 hilft mir, Dinge für BMPs einzurichten, aber wenn ich versuche, es für HTML zu verwenden, bekomme ich einen schönen blauen Hintergrund und sonst nichts.

Dim reg As New StdRegistry 

Public Function CurrentWallpaper() As String 
    CurrentWallpaper = reg.ValueEx(HKEY_CURRENT_USER, "Control Panel\Desktop", "Wallpaper", REG_SZ, "") 
End Function 

Public Sub SetWallpaper(cFilename As Variant) 
    reg.ClassKey = HKEY_CURRENT_USER 
    reg.SectionKey = "Control Panel\Desktop" 
    reg.ValueKey = "Wallpaper" 
    reg.ValueType = REG_SZ 
    reg.Default = "" 
    reg.Value = cFilename 
End Sub 

Public Sub RefreshDesktop() 
    Dim oShell As Object 
    Set oShell = CreateObject("WScript.Shell") 
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True 
End Sub 

Vielleicht ist eine andere Einstellung erforderlich. Irgendwelche Ideen?

Antwort

1

Ich bin mir nicht sicher, ob es eine offizielle API dafür gibt, aber wenn Sie sich darauf festgelegt haben, können Sie Sysinternals Process Monitor verwenden und sehen, welche Registrierungsschlüssel berührt werden, wenn Sie einen HTML-Desktop-Hintergrund über die Benutzeroberfläche festlegen. Dann müssten Sie diese Änderungen nur noch in Ihrem Code wiederholen. Ein API-Aufruf wäre jedoch im Hinblick auf Rückwärts/Vorwärts-Kompatibilität weit vorzuziehen.

+0

Ja, das habe ich versucht. Ich gehe immer noch durch umfangreiche Datenmengen, um herauszufinden, was was macht. – bugmagnet

2

Ich denke, Sie müssen sicherstellen, dass "Active Desktop" eingeschaltet ist.

Sie könnten versuchen, HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ForceActiveDesktopOn auf 1 (gefunden here) zu setzen.

Ich habe es nicht versucht, also keine Garantien.

0

Näher: http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/w2rkbook/gp.mspx?mfr=true


Aber es stellt sich heraus, dass ich in politischen Handlungsspielraum sidetracked bekommen. Eigentlich wollte ich den Desktop im Benutzerbereich einrichten und die Richtlinieneinstellungen beibehalten. Einige hilfreiche Sachen wurden hier gefunden: http://blogs.msdn.com/coding4fun/archive/2006/10/31/912569.aspx.

Dies ist jedoch nicht die endgültige Lösung. Die Kontrolle von HTML-Desktops ist immer noch unerreichbar.


Scheint, dass HTML-Einstellungen in HKCU \ Software \ Microsoft \ Internet Explorer \ Desktop \ Allgemein gespeichert sind. Es scheint jedoch nicht genug zu sein, sie hier zu speichern. Ich muss immer noch den Mechanismus finden, mit dem Windows weiß, welcher Satz von Registrierungswerten verwendet werden soll.

0

Ich empfehle nur BMP-Format. Verwenden Sie ActiveDesktop nicht, da Ihr PC danach langsam arbeitet.