Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查是否安装了Adobe Reader(C#)?_C#_Adobe Reader - Fatal编程技术网

检查是否安装了Adobe Reader(C#)?

检查是否安装了Adobe Reader(C#)?,c#,adobe-reader,C#,Adobe Reader,如何检查系统中是否安装了Adobe reader或acrobat?还有如何获取版本?(在C代码中)也请考虑运行64位操作系统的人,并可能运行Adobe Reader的32位或64位版本。 以下代码是Abmv发布的解决方案的修改版本,但在检查32位版本之前,将先检查是否安装了64位版本的adobe reader 希望这有意义!:-) 使用系统; 使用Microsoft.Win32; 名称空间MyApp { 班级计划 { 静态void Main(字符串[]参数) { RegistryKey软件=Re

如何检查系统中是否安装了Adobe reader或acrobat?还有如何获取版本?(在C代码中)

也请考虑运行64位操作系统的人,并可能运行Adobe Reader的32位或64位版本。 以下代码是Abmv发布的解决方案的修改版本,但在检查32位版本之前,将先检查是否安装了64位版本的adobe reader

希望这有意义!:-)

使用系统;
使用Microsoft.Win32;
名称空间MyApp
{
班级计划
{
静态void Main(字符串[]参数)
{
RegistryKey软件=Registry.LocalMachine.OpenSubKey(“软件”);
if(软件!=null)
{
注册表项adobe;
//尝试获取64位版本的adobe
if(Environment.is64位操作系统)
{
RegistryKey software64=software.OpenSubKey(“Wow6432Node”);
if(software64!=null)
adobe=software64.OpenSubKey(“adobe”);
}
//如果未安装64位版本,请尝试获取32位版本
if(adobe==null)
adobe=software.OpenSubKey(“adobe”);
//如果找不到64位或32位版本,则可能未安装adobe reader。
如果(adobe!=null)
{
RegistryKey acroRead=adobe.OpenSubKey(“Acrobat Reader”);
if(acroRead!=null)
{
字符串[]acroReadVersions=acroRead.GetSubKeyNames();
Console.WriteLine(“安装了以下版本的Acrobat Reader:”);
foreach(acroReadVersions中的字符串版本号)
{
Console.WriteLine(版本号);
}
}
其他的
Console.WriteLine(“未安装Adobe reader!”);
}
其他的
Console.WriteLine(“未安装Adobe reader!”);
}
}
}
}

唯一适合我的解决方案是:

    var adobePath = Registry.GetValue(
@"HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe", string.Empty, string.Empty);
然后我检查
adobePath!=空
则安装了Adobe reader


通过这种方式,我还将获得acrobat reader可执行文件的路径。

如果您真正想做的是检查系统上是否安装了PDF查看器,请不要检查Adobe reader。我和我的一些同事正在使用Foxit Reader,它比Adobe Reader好得多。Adobe将它放在其他地方,或者我的Windows8机器有不同的功能,修改了上面的代码,尝试在
软件中查找Adobe。如果安装的Adobe Reader是最新的,有没有办法签入c代码,或者是否有新的更新可用?我已卸载acrobat,但注册表仍保持不变,并且版本(adobe变量)不为空且具有最新版本。如果安装的adobe reader是最新的,或者是否有新的更新可用,是否有方法签入c代码?
    var adobePath = Registry.GetValue(
@"HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe", string.Empty, string.Empty);