首页 新闻 会员 周边

求助 c#操作windows7的注册表权限不足的问题?

0
悬赏园豆:50 [已关闭问题]

院子里的哥哥姐姐们,我这两天做个小东西呀设置成开机自启动,
我就直接操作注册表了,但是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 }

 

问题补充: 弹出的错误是:试图执行未经授权的操作。
12112121的主页 12112121 | 初学一级 | 园豆:130
提问于:2010-03-18 09:26
< >
分享
其他回答(4)
0

有可能和我的一样,你先关了UAC试试

小张.NET | 园豆:152 (初学一级) | 2010-03-18 09:35
0

把你当前的用户配置成计算机管理员的权限.

风浪 | 园豆:2996 (老鸟四级) | 2010-03-18 09:36
0

以管理员方式运行

齐.net | 园豆:1421 (小虾三级) | 2010-03-18 09:38
0
RegistryKey key = 
  tmpKey.CreateSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
换成:
RegistryKey key = 
  tmpKey.CreateSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",RegistryKeyPermissionCheck.ReadWriteSubTree)
试一下呢...
Mikimars | 园豆:165 (初学一级) | 2010-03-18 11:23
呵呵 谢谢 但是也不好用呢
支持(0) 反对(0) 12112121 | 园豆:130 (初学一级) | 2010-03-18 12:02
0

这个是UAC的问题!试着如下操作

给你的程序增加一个Application manifest file文件(应用程序清单文件),然后将asInvoker替换成requireAdministrator。然后再进行注册表的操作试下下!

一般加了这个文件后,你调试程序的时候程序会要求你以administrator的身份来启动vs,此时操作注册表是没有问题了。已经在vista系统下操作成功,windows7也应该没问题的。

西越泽 | 园豆:10775 (专家六级) | 2010-03-18 21:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册