使用C#读取注册表的某些键值

背景

最近在做一个功能的时候,需要判断某个软件是否安装,如果没有安装不显示对应的功能。我个人觉得最好注册表中读取某个键值,用对应的键值来判断是否安装,因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的。开始的时候使用的是C# ,所以自己直接去官网看了是否有对应的API,之后自己做了测试发现是可以成功的。下面就把自己的测试代码贴上,用于记录这次的学习。

代码

class Program
    {
        static void Main(string[] args)
        {
            string registry_key = @"Software\Microsoft\Office\";
            int i = 0;
            using (RegistryKey key = Registry.CurrentUser.OpenSubKey(registry_key))
            {
                foreach (string subkey_name in key.GetSubKeyNames())
                {
                    Console.WriteLine(++i + "\t" + subkey_name);
                    using (RegistryKey subkey = key.OpenSubKey(subkey_name))
                    {
                        Console.WriteLine(subkey.GetValue("DisplayName"));
                    }

                    if (subkey_name.Contains("Teams"))
                    {
                        RegistryKey teamsKey = key.OpenSubKey(subkey_name);
                        foreach (string teamsNames in teamsKey.GetSubKeyNames())
                        {
                            Console.WriteLine("\t\t" + teamsNames);
                        }
                        object displayName = teamsKey.GetValue("ApplicationDescription");
                        Console.WriteLine("\t\t Name is " + displayName.ToString());
                    }
                }
            }

            Console.ReadKey();
        }
    }

猜你喜欢

转载自www.cnblogs.com/zuixime0515/p/12902752.html