2008-09-17 84 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的Process Monitor,並通過UI設置HTML桌面背景時看看觸摸了哪些註冊表鍵。那麼你只需要在代碼中重複這些編輯。但是,從後向/前向兼容性角度來看,API調用將更加可取。

+0

是的,我試過了。我仍然經歷了大量的數據試圖找出什麼是什麼。 – bugmagnet 2008-09-17 16:52:42

2

我認爲您需要確保「Active Desktop」處於打開狀態。

您可以嘗試設置HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ForceActiveDesktopOn1(找到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,因爲您的電腦在此之後會慢慢工作。