2008-09-17 4 views
3

Я читал в нескольких местах, что обои для рабочего стола могут быть установлены в документе HTML. Кто-нибудь имел какие-либо успехи, изменяя его программным путем?Обои для Windows: не только BMP?

Следующий фрагмент VB6 помогает мне настроить вещи для BMP, но когда я пытаюсь использовать его для HTML, я получаю хороший синий фон и ничего больше.

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 

Возможно, есть другие настройки, которые необходимы. Есть идеи?

ответ

1

Я не уверен, что для этого есть официальный API, но если у вас есть на нем ваше сердце, вы можете использовать Sysinternal's Process Monitor и посмотреть, какие ключи реестра будут затронуты при настройке фона рабочего стола HTML через пользовательский интерфейс. Тогда вам просто нужно будет повторить эти изменения в вашем коде. Тем не менее, вызов API будет гораздо предпочтительнее с точки зрения совместимости с обратным/прямым доступом.

+0

Да, я пробовал это. Я все еще переживаю огромные объемы данных, пытаясь понять, что делает. – bugmagnet 2008-09-17 16:52:42

2

Я думаю, вам нужно убедиться, что включен «Активный рабочий стол».

Вы можете попробовать установить HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ForceActiveDesktopOn на номер 1 (найдено here).

Я не пробовал, поэтому никаких гарантий.

0

Подойдя ближе: http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/w2rkbook/gp.mspx?mfr=true


Но получается, что я получал уведен в политике пространстве. Я действительно хотел установить рабочий стол в пользовательском пространстве и оставить настройки политики. Некоторые полезные материалы были найдены здесь: http://blogs.msdn.com/coding4fun/archive/2006/10/31/912569.aspx.

Это не окончательное решение. Управление рабочими столами HTML все еще недоступно.


Кажется, что настройки HTML хранятся в HKCU \ Software \ Microsoft \ Internet Explorer \ Desktop \ General. Однако просто хранить их здесь, похоже, недостаточно. Мне все еще нужно найти механизм, позволяющий Windows знать, какой набор значений реестра использовать.

0

Я рекомендую только формат BMP. Не используйте ActiveDesctop, потому что после этого ваш компьютер будет работать медленно.