最近在做一个功能的时候,需要判断某个软件是否安装,如果没有安装不显示对应的功能。我个人觉得最好注册表中读取某个键值,用对应的键值来判断是否安装,因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的。开始的时候使用的是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();
}
}
|
请发表评论