我的要求是读取与Adobe Acrobat Reader相关的特定注册表键值,并根据该键值作出决定。Adobe Acrobat Reader注册表键值位置不断变化
虽然这看起来很简单,就像我需要使用注册表类(用于.NET) 查询密钥,然后根据该值做出决定。
但是,我现在面临的问题是,注册表键位在几乎每个新版本的Adobe Acrobat Reader中都会不断变化。
我现在所能想到的是在我的代码中有一个开关盒来处理所有不同的Adobe版本。
RegistryKey adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe");
if (adobe != null)
{
RegistryKey acroRead = adobe.OpenSubKey("Acrobat Reader");
if (acroRead != null)
{
string[] acroReadVersions = acroRead.GetSubKeyNames();
Console.WriteLine("The following version(s) of Acrobat Reader are installed: ");
foreach (string versionNumber in acroReadVersions)
{
switch(versionNumber)
{
case 1.x = //do something;
//break;
case 2.x = //do something;
//break;
case 6.x = //do something;
//break;
case 9.x = //do something;
//break;
}
}
}
}
但有些我不满意这种方法。每次Adobe发布新版本时,我都必须确保我必须以不同方式处理它。任何建议更好的方法。
感谢