用VS2008建的安装部署,想在卸载时删除注册表指定项,于是重写unintall方法
代码如下 private void DeleteRegist(string name)
{
string[] aimnames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
aimnames = software.GetSubKeyNames();
foreach (string aimKey in aimnames)
{
if (aimKey == name)
software.DeleteSubKeyTree(name);
} }
在XP下运行没有问题,但在win7下运行时不成功,关掉UAC了再试还是不成功,想问下有没有高手知道是什么问题,求助
代码如下 private void DeleteRegist(string name)
{
string[] aimnames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
aimnames = software.GetSubKeyNames();
foreach (string aimKey in aimnames)
{
if (aimKey == name)
software.DeleteSubKeyTree(name);
} }
在XP下运行没有问题,但在win7下运行时不成功,关掉UAC了再试还是不成功,想问下有没有高手知道是什么问题,求助
写一个winform程序测试下,以管理员身份运行看你的代码能卸载注册表,啊
registryKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);如果写CPU类型通用的程序的话可以使用这种方法处理:RegistryKey registryKey;
if (Environment.Is64BitOperatingSystem == true)
{
registryKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
}
else
{
registryKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
}