Vb6 Windows墙纸:不仅仅是BMP?
我在几个地方读到过,桌面壁纸可以设置为HTML文档。是否有人成功地通过编程更改了它 下面的VB6片段帮助我设置BMP,但当我尝试将其用于HTML时,我得到了一个漂亮的蓝色背景,没有其他东西Vb6 Windows墙纸:不仅仅是BMP?,vb6,registry,desktop-wallpaper,Vb6,Registry,Desktop Wallpaper,我在几个地方读到过,桌面壁纸可以设置为HTML文档。是否有人成功地通过编程更改了它 下面的VB6片段帮助我设置BMP,但当我尝试将其用于HTML时,我得到了一个漂亮的蓝色背景,没有其他东西 Dim reg As New StdRegistry Public Function CurrentWallpaper() As String CurrentWallpaper = reg.ValueEx(HKEY_CURRENT_USER, "Control Panel\Desktop", "Wa
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
也许还需要其他一些设置。有什么想法吗?我想你需要确保“活动桌面”已打开 您可以尝试将
HKCU\Software\Microsoft\Windows\CurrentVersion\Policys\Explorer\ForceActiveDesktopOn
设置为1
(已找到)
我还没有试过,所以不能保证。越来越近:
但事实证明,我在政策领域偏离了方向。我真正想要的是在用户空间中设置桌面,并让策略设置保持不变。这里找到了一些有用的东西: 然而,这并不是最终的解决方案。对HTML桌面的控制仍然遥不可及。
HTML设置似乎存储在HKCU\Software\Microsoft\Internet Explorer\Desktop\General中。然而,仅仅将它们存储在这里似乎还不够。我仍然需要找到让Windows知道要使用哪一组注册表值的机制。我只推荐BMP格式。不要使用ActiveDesctop,因为在那之后,你的电脑会工作得很慢。我不确定是否有官方的API用于此,但如果你一心想用它,你可以使用Sysinternal,看看当你通过UI设置HTML桌面背景时,会碰到哪些注册表项。然后您只需要在代码中重复这些编辑。不过,就向后/向前兼容性而言,API调用更可取。好的,多亏了上的egl1044,我找到了问题的答案。本质上,必须与IActiveDesktop对象对话。在VB6中有一个很好的实现,可以在中找到。是的,我试过了。我仍然在浏览大量的数据,试图找出什么起作用。