首页 新闻 会员 周边 捐助

Vista中如何更改桌面壁纸?

0
悬赏园豆:80 [已关闭问题] 关闭于 2008-09-24 11:31

最近在做一个定时变换桌面壁纸的程序,请问如何在Vista下用C#实现?

问题补充: 谢谢“刘皇叔”的回答,我的问题是如何用C#实现。 谢谢“LanceZhang”的回答,不知您的代码自己是否已测试成功,我在Vista Home Basic中没有测试成功。 Vista从注册表更改壁纸在更改后不能实时更新,因为Vista 的 AppData 中有一个墙纸缓存,这个缓存只有在注销并重新登录用户帐户时才会刷新。
迷你软件的主页 迷你软件 | 初学一级 | 园豆:155
提问于:2008-09-23 17:56
< >
分享
所有回答(2)
0

搞定这个功能,有两种办法,一种是用Vista优化大师,一种是手动更改注册表,二者殊途同归。

    一、修改注册表

    首先,单击“开始”菜单中“运行”选项,在出现的“运行”对话框中,输入“regedit”,按“确定”按钮后,打开系统注册表编辑器。

    依次展开注册表分支项“HKEY_

    CURRENT_USERS→Software→Microsoft→Windows

    →Current-Version→Polices“,展开的方法是用鼠标单击注册表分支项前面的”+“按钮。

    打开“Polices”分支项后,在注册表编辑器的右侧窗口中,单击鼠标右键,在弹出的右键快捷菜单中,依次选择“新建→项”(如图1),再将新建的分支项命令设为“Explorer”,如果在“Polices”中,已经有了“Explorer”这一项,此步骤可以省略。

   

 

    打开新建的“Explorer”项,在注册表编辑器右侧窗口空白处右键单击,在弹出的右键快捷菜单中依次选择“新建→项→DWORD(32位)”,并将此键值重命名为“NoSaveSettings”。然后双击该项名称,在弹出的“编辑DWORD(32位)值”窗口的“数值数据”中将其值修改为“1”,基数”处选择“十六进制”,单击“确定”按钮,关闭小窗口,再关闭注册表编辑器,重新启动计算机,设置即可生效。

   

    在注册表中“NoSaveSettings”是不能保存设置的意思,如果将其值设置为“1”,即表示此功能生效,当学生在更改桌面壁纸时,表面上看起来已经更改,但实际上,当电脑再重新启动后,对桌面的设置是不能生效的,如果以后管理员再想统一设置Vista系统桌面时,只须将“NoSaveSettings”项的值改为“0”即可。

    二、使用Vista优化大师

    打开Vista优化大师,点击上方的美化按钮,自动弹出Vista美化大师,直接勾选“退出时禁止保存桌面设置”,点击右下角保存设置即可。

   

刘皇叔 | 园豆:120 (初学一级) | 2008-09-23 21:05
0

c#编程修改注册表:

using   Microsoft.Win32 

不过在64位系统下面似乎有些问题

//demo code

Code
RegistryKey key = Registry.LocalMachine;
key
= key.OpenSubKey(@ "SYSTEM\ControlSet001\Control\Session Manager\Environment ", true);
key.SetValue(
"AutomatedTestPath ", "c:\windows\temp "); object keyval = new object();
keyval
= key.GetValue( "AutomatedTestPath ");
LanceZhang | 园豆:857 (小虾三级) | 2008-09-23 21:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册