背景
最近在做一個功能的時候,需要判斷某個軟件是否安裝,如果沒有安裝不顯示對應的功能。我個人覺得最好注冊表中讀取某個鍵值,用對應的鍵值來判斷是否安裝,因為每個軟件安裝之后都會在注冊表中注冊對應的鍵值,並且有些鍵值是獨一無二的。開始的時候使用的是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();
}
}