[已关闭问题] Vista中如何更改桌面壁纸?
提问时间: 2008-09-23 17:56
悬赏分:80 提问时间2008/9/23 17:56:12 问题为何被关闭 浏览:280 次

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

提问者:EasyData - 初学一级

问题补充:谢谢“刘皇叔”的回答,我的问题是如何用C#实现。
谢谢“LanceZhang”的回答,不知您的代码自己是否已测试成功,我在Vista Home Basic中没有测试成功。
Vista从注册表更改壁纸在更改后不能实时更新,因为Vista 的 AppData 中有一个墙纸缓存,这个缓存只有在注销并重新登录用户帐户时才会刷新。


(2)

搞定这个功能,有两种办法,一种是用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美化大师,直接勾选“退出时禁止保存桌面设置”,点击右下角保存设置即可。

   


1个月前   回答者:刘皇叔 - 初学一级

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 ");

1个月前   回答者:LanceZhang - 菜鸟二级
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题



> 问题排行榜

相关内容

相关链接