lang110 发表于 2015-5-14 13:45:04

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)的键值。
页: [1]
查看完整版本: win7自动壁纸切换小工具AutoDesk(四)-开机启动