私の要件は、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が新しいバージョンをリリースするたびに、私は別の方法でそれを処理する必要があることを確認する必要があります。よりよいアプローチのための提案。
おかげ