Domanda

Ho letto in un paio di posti che lo sfondo del desktop può essere impostato su un documento HTML.Qualcuno ha avuto successo modificandolo a livello di codice?

Il seguente frammento di VB6 mi aiuta a configurare le cose per i BMP ma quando provo a usarlo per HTML, ottengo uno sfondo blu e nient'altro.

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

Forse è necessaria qualche altra impostazione.Qualche idea?

È stato utile?

Soluzione

Non sono sicuro che esista un'API ufficiale per questo, ma se ci tieni a farlo potresti usare Sysinternal Monitoraggio del processo e scopri quali chiavi di registro vengono toccate quando imposti uno sfondo del desktop HTML tramite l'interfaccia utente.Quindi dovresti solo ripetere quelle modifiche nel tuo codice.Tuttavia, una chiamata API sarebbe di gran lunga preferibile in termini di compatibilità con le versioni precedenti/successive.

Altri suggerimenti

Penso che tu debba assicurarti che "Active Desktop" sia attivato.

Potresti provare a impostare HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ForceActiveDesktopOn A 1 (trovato Qui).

Non l'ho provato quindi nessuna garanzia.

Ok, ho scoperto la risposta alla mia domanda, grazie a egl1044 su Scambio di esperti.In sostanza, bisogna parlare con l'oggetto IActiveDesktop.Una buona implementazione di ciò, in VB6, può essere trovata su VB6 - JPEG come sfondi (senza conversione).

Raccomando solo il formato BMP.Non utilizzare ActiveDesctop, perché dopo ciò il tuo PC funzionerà lentamente.

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


Ma si scopre che mi stavo distraendo nello spazio politico.Ciò che volevo veramente era impostare il desktop nello spazio utente e lasciare invariate le impostazioni dei criteri.Alcune cose utili sono state trovate qui: http://blogs.msdn.com/coding4fun/archive/2006/10/31/912569.aspx.

Questa non è però la soluzione finale.Il controllo dei desktop HTML è ancora fuori portata.


Sembra che le impostazioni HTML siano archiviate in HKCU\Software\Microsoft\Internet Explorer\Desktop\General.Tuttavia, memorizzarli qui non sembra essere sufficiente.Devo ancora trovare il meccanismo che consenta a Windows di sapere quale insieme di valori di registro utilizzare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top