我知道安装了Acrobat阅读器,但我想知道安装了哪个版本的acrobat? 但是没有使用注册表项。 有任何Acrobat阅读器功能可以获得它吗?
提前致谢
我使用了以下代码,但在某些地方抛出异常
RegistryKey adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe");
if (adobe != null)
{
RegistryKey acroRead = adobe.OpenSubKey("Acrobat Reader");
if (acroRead != null)
{
string[] acroReadVersions = acroRead.GetSubKeyNames();
string versionNos = "";
string ResultAcrobat ="";
foreach (string versionNumber in acroReadVersions)
{
if (Convert.ToDecimal(versionNumber) >= 9)
{
ResultAcrobat = "OK";
}
versionNos += ",Version v" + versionNumber;
}
versionNos = versionNos.Remove(0, 1);
AcrobatReader = versionNos;
if (Convert.ToString(dr["ResultAcrobat"]) == "")
{
ResultAcrobat = "Error";
}
}
答案 0 :(得分:0)
当然,但它比阅读注册表(它保持实际应用程序被打开)更加骇人听闻。
如果您无法阅读注册表,我的建议是:
AcroRd32.exe
下找到程序文件文件夹中的所有文件名C:\Program Files (x86)\Adobe
; 从使用此代码找到的可执行文件中获取文件版本:
string[] files = Directory.GetFiles(@"C:\Program Files (x86)\Adobe", "AcroRd32.exe", SearchOption.AllDirectories);
// determine which one to use
string pathToAdobeExe = files.First();
string version = FileVersionInfo.GetVersionInfo(pathToAdobeExe).ProductVersion;