Pregunta

He leído en un par de lugares que el fondo de pantalla del escritorio se puede configurar como un documento HTML.¿Alguien ha tenido éxito al cambiarlo mediante programación?

El siguiente fragmento de VB6 me ayuda a configurar cosas para BMP, pero cuando intento usarlo para HTML, obtengo un bonito fondo azul y nada más.

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

Quizás se requiera alguna otra configuración.¿Algunas ideas?

¿Fue útil?

Solución

No estoy seguro de si existe una API oficial para esto, pero si tienes ganas de hacerlo, puedes usar la de Sysinternal. Monitor de proceso y vea qué claves de registro se tocan cuando configura un fondo de escritorio HTML a través de la interfaz de usuario.Entonces solo necesitarías repetir esas ediciones en tu código.Sin embargo, una llamada API sería mucho más preferible en términos de compatibilidad con versiones anteriores y posteriores.

Otros consejos

Creo que debes asegurarte de que "Active Desktop" esté activado.

Podrías intentar configurar HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ForceActiveDesktopOn a 1 (encontró aquí).

No lo he probado, así que no hay garantías.

Bien, descubrí la respuesta a mi pregunta, gracias a egl1044 en Intercambio de expertos.Básicamente, hay que hablar con el objeto IActiveDesktop.Una buena implementación de eso, en VB6, se puede encontrar en VB6: archivos JPEG como fondos de pantalla (sin conversión).

Recomiendo sólo el formato BMP.No utilice ActiveDesctop, porque su PC funcionará lentamente después de eso.

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


Pero resulta que me estaba desviando del tema de las políticas.Lo que realmente quería era configurar el escritorio en el espacio de usuario y dejar que se mantuvieran las configuraciones de política.Algunas cosas útiles se encontraron aquí: http://blogs.msdn.com/coding4fun/archive/2006/10/31/912569.aspx.

Sin embargo, ésta no es la solución final.El control de los escritorios HTML todavía está fuera de nuestro alcance.


Parece que la configuración HTML está almacenada en HKCU\Software\Microsoft\Internet Explorer\Desktop\General.Sin embargo, simplemente almacenarlos aquí no parece ser suficiente.Todavía necesito encontrar el mecanismo que le permita a Windows saber qué conjunto de valores de registro usar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top