win7自动壁纸切换小工具AutoDesk(四)-开机启动

实现开机启动最简单的方法是在注册表里面写入一个键值就可以了。

由于win7对安全要求跟xp不同,写入注册表往往绕不过UAC,需要程序提升权限,我开始也在这里走了不少弯路,后来在msdn论坛上面看到提示,在currentuser下面的键值写入是不需要权限的,可以直接写,我看网上很多帖子都写在localmochine下面,走了弯路。

http://social.msdn.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/a3c87b19-3860-4fbb-96e9-64295860483a/

具体键值就是HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

下面两个函数分别实现写入键值和删除键值:

 1 private void regAutoStart()
 2         {
 3             RegistryKey reg;
 4             reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
 5             reg.SetValue("AutoDesktop", Application.ExecutablePath);
 6             reg.Close();
 7         }
 8 
 9         private void unRegAutoStart()
10         {
11             RegistryKey reg;
12             reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
13             reg.DeleteValue("AutoDesktop");
14             reg.Close();
15         }

由于我在外层有异常的判断,这里就简单的实现功能了。是不是很简单,关键是CurrentUser。

我查看过QQ的实现方式,当你选择qq随机器启动时,就会在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下面看到QQ2009(我的qq版本是2009)的键值。

posted @ 2012-07-10 01:07  linbirg  阅读(1586)  评论(6编辑  收藏  举报