院子里的哥哥姐姐们,我这两天做个小东西呀设置成开机自启动,
我就直接操作注册表了,但是windows 7 总是提示权限不足,
我该怎么解决它的权限问题呢?
1 public void AutoStart()
2 {
3 RegistryKey tmpKey = Registry.LocalMachine;
4 RegistryKey key = tmpKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
5 Object o=key.GetValue("CapsLock");
6 if (o != null)
7 {
8 if (o.ToString() != Application.ExecutablePath)
9 {
10 key.SetValue("CapsLock", Application.ExecutablePath);//在这里就报权限不足了....
11 return;
12 }
13 return;
14 }
15 key.SetValue("CapsLock", Application.ExecutablePath);
16 return;
17 }
有可能和我的一样,你先关了UAC试试
把你当前的用户配置成计算机管理员的权限.
以管理员方式运行
RegistryKey key =
tmpKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
换成:RegistryKey key =试一下呢...
tmpKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",RegistryKeyPermissionCheck.ReadWriteSubTree)
这个是UAC的问题!试着如下操作
给你的程序增加一个Application manifest file文件(应用程序清单文件),然后将asInvoker替换成requireAdministrator。然后再进行注册表的操作试下下!
一般加了这个文件后,你调试程序的时候程序会要求你以administrator的身份来启动vs,此时操作注册表是没有问题了。已经在vista系统下操作成功,windows7也应该没问题的。