遍历注册表,获取到了值,但是修改出了问题,请大大帮忙看看。

paigus 2009-04-12 11:28:49
public void FindSymantec(RegistryKey MyKey)
{
//Console.WriteLine("Searching { 0 }...", MyKey.ToString());

// 获取所有键名

foreach (string MyValueName in MyKey.GetValueNames())
{
// 键类型
if (MyKey.GetValueKind(MyValueName) == RegistryValueKind.String)
{
// 获取键值
string MyValue = MyKey.GetValue(MyValueName).ToString().ToLower();
if (MyValue.Contains("http://www.68la.com/"))
{
MyValue.Replace("http://www.68la.com/", "about:blank"); --- 这里已经遍历到他的值了,为什么还是修改不了? 请高手帮忙看看


}
}
}
...全文
76 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
paigus 2009-04-12
  • 打赏
  • 举报
回复
up 学习,帮忙看看
paigus 2009-04-12
  • 打赏
  • 举报
回复
RegistryKey[] MyRootKeys = new RegistryKey[5] { Registry.CurrentUser, Registry.ClassesRoot, Registry.LocalMachine, Registry.Users, Registry.CurrentConfig };
foreach (RegistryKey MyRootKey in MyRootKeys)
{
FindSymantec(MyRootKey);
}

}
public void FindSymantec(RegistryKey MyKey)
{
//Console.WriteLine("Searching { 0 }...", MyKey.ToString());

// 获取所有键名

foreach (string MyValueName in MyKey.GetValueNames())
{
// 键类型
if (MyKey.GetValueKind(MyValueName) == RegistryValueKind.String)
{
// 获取键值
string MyValue = MyKey.GetValue(MyValueName).ToString().ToLower();
if (MyValue.Contains("http://www.68la.com/"))
{
//listBox1.Items.Add(MyKey.ToString());
//listBox1.Items.Add(MyValueName.ToString());
//listBox1.Items.Add(MyValue.ToString());
MyValue.Replace("http://www.68la.com/", "about:blank");

//key.SetValue("", "about:blank");
}
}
}

// 获取所有子键,递归
if (MyKey.SubKeyCount != 0)
{
// 获取子键名
foreach (string MySubKey in MyKey.GetSubKeyNames())
{
// 打开子键
RegistryKey SubKey;
try
{
SubKey = MyKey.OpenSubKey(MySubKey);
}
catch
{
continue;
}

// 递归
FindSymantec(SubKey);
}
}

这是全部代码
cppfaq 2009-04-12
  • 打赏
  • 举报
回复
MyValue.Replace("http://www.68la.com/", "about:blank"); --- 这里已经遍历到他的值了,为什么还是修改不了? 请高手帮忙看看

这一句得到了一个新的string
但是你并没有把它写回到注册表啊

RegistryKey.SetValue
http://msdn.microsoft.com/zh-cn/library/2kk9bxk9(VS.80).aspx
paigus 2009-04-12
  • 打赏
  • 举报
回复
SetValue 修改注册表值
paigus 2009-04-12
  • 打赏
  • 举报
回复
运行没有报错,但是修改不成功。只能显示搜索注册表的结果在listbox显示
gomoku 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 paigus 的回复:]
MyKey.SetValue 是点不出的。
[/Quote]
那你明白SetValue是什么意思吗?
paigus 2009-04-12
  • 打赏
  • 举报
回复
MyKey.SetValue 是点不出的。
wonsoft 2009-04-12
  • 打赏
  • 举报
回复
是不是你的杀毒软件不允许操作注册表呢?报的什么错嘛。
paigus 2009-04-12
  • 打赏
  • 举报
回复
MyKey.SetValue 点不出。
gomoku 2009-04-12
  • 打赏
  • 举报
回复
:)更正,应该是
MyKey.SetValue
gomoku 2009-04-12
  • 打赏
  • 举报
回复
MyValue.SetValue(...)
paigus 2009-04-12
  • 打赏
  • 举报
回复
高手都去哪里勒?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧