,错误提示如下:
未处理SecurityException
不允许所请求的注册表访问权。
用regedit查看Properties权限,所看到的是“组或用户名”是空的。
用psexec.exe工具提权运行regedit,可看到Properties下所有子项及键值。
现在的问题就是如何用VS2010(VB)提权操作注册表,查看和删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Disk&Ven_Lenovo&Prod_USB_Flash_Drive&Rev_1100\AA04012700010894&0\Properties下的所有内容。
目前为止,我已在网上查一两周了,大多都是复制别人的,要不就是说这权那权的,没有一个给出完整代码的!经测试没有一个能实现的答案,
请不要随意COPY一下代码就转过来,自己最好亲自测试一下。
本人没有分,但我可以请第一个给出正解的人喝昆仑山雪菊。
给出正解的请把你的收信地址发至我QQ邮箱: wodmaq@qq.com
3 个解决方案
#1
//在SOFTWARE在打开子项person,把“张三”写入到person中名字为“username”的项中
Microsoft.Win32.RegistryKey rkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE",true).CreateSubKey("person");
rkey.SetValue("username",“张三”);
//判断注册表中是否有存放username的键
Microsoft.Win32.RegistryKey software=Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE",true);
foreach(string name in software.GetSubKeyNames())
{
if(name == "jc_person")
{
//从注册表中读用户名
Microsoft.Win32.RegistryKey rkey = software.OpenSubKey("person");
if(rkey.GetValue("username") == null) this.txtUsername.Text = "";
else
{
this.txtUsername.Text = rkey.GetValue("username").ToString();
store = true;
}
}
}
if(!store)
{
//在SOFTWART下创建一个子键来存放username
software.CreateSubKey("person");
}
#2
是对注册表中HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\下的子键进行操作,不是单独创建一下,单独创建读取没有问题,具体问题请看帖子正文。
#3
管理员权限
#1
//在SOFTWARE在打开子项person,把“张三”写入到person中名字为“username”的项中
Microsoft.Win32.RegistryKey rkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE",true).CreateSubKey("person");
rkey.SetValue("username",“张三”);
//判断注册表中是否有存放username的键
Microsoft.Win32.RegistryKey software=Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE",true);
foreach(string name in software.GetSubKeyNames())
{
if(name == "jc_person")
{
//从注册表中读用户名
Microsoft.Win32.RegistryKey rkey = software.OpenSubKey("person");
if(rkey.GetValue("username") == null) this.txtUsername.Text = "";
else
{
this.txtUsername.Text = rkey.GetValue("username").ToString();
store = true;
}
}
}
if(!store)
{
//在SOFTWART下创建一个子键来存放username
software.CreateSubKey("person");
}
#2
是对注册表中HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\下的子键进行操作,不是单独创建一下,单独创建读取没有问题,具体问题请看帖子正文。
#3
管理员权限