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)的键值。

你可能感兴趣的:(win7)