using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Win32;
namespace project
{
public class RegistryOperation
{
public static void Main(string[] args)
{
//定义顶级节点的路径
RegistryKey ourkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\");
//调用方法来枚举出该节点下的所有子项
GetSubKeys(ourkey);
//下面一句是让用户按下一个键后关闭程序
Console.ReadKey(true);
}
/// <summary>
/// 枚举出注册表某项下面的所有子项
/// </summary>
/// <param name="SubKey"></param>
private static void GetSubKeys(RegistryKey SubKey)
{
foreach (string sub in SubKey.GetSubKeyNames())
{
//string subKey = string.Format(SubKey + @"\" + sub);
//Console.Write(SubKey + @"\" + sub);
RegistryKey local = Registry.Users;
local = SubKey.OpenSubKey(sub, true);
Console.WriteLine(local.GetValue("DisplayName","未知")); //读取出安装的软件名称,未读出的显示未知
GetSubKeys(local); //调用自身来查找剩余子项
}
}
}
}