检查是否安装了任何类型的PDF Reader

Max*_*Max 6 c# pdf visual-studio

我有一个Help功能Application,包括一个功能webbrowser control.这webbrowser control充满了a .pdf file,其源头.pdf file是我们自己的网站.

问题是,不是每个人都会PDF Reader在他们的机器上安装,所以我想检查是否安装了一个:是或否.我搜索了互联网,我大多看到Stackoverflow上的用户想要检查是否Adobe Reader已安装,不是我想要的.我需要知道如果PDF Reader机器上安装了某个地方.

我找到了以下代码,可以帮助我:

public void CheckPdfReaderAvailable()      
{      
    RegistryKey key = Registry.ClassesRoot.OpenSubKey(".pdf");      
    Assert.IsNotNull(key);      
}  
Run Code Online (Sandbox Code Playgroud)

当我看到上面的代码时,我的想法是代码检查是否registry知道.pdf format,但我不确定.

有人可以告诉我如何使用上面的代码或提供一个例子,关于我应该如何解决这个问题?

提前致谢!

编辑:

以下答案帮助了我:https://stackoverflow.com/a/774482/1661209

解决这个问题的另一种方法是将pdf reader lite添加到先决条件并让用户首先安装,你不必检查pdf Reader,因为你知道一个已安装,如果不是您可以说用户不能使用帮助功能是错误的,因为您为他们提供了一种使用已发布项目轻松安装PDF阅读器的方法.

Joh*_*mse 5

除了知道与否之外,您可能会检查以下注册表项:

HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/pdf

这将有一个条目CLSID,指向默认应用程序的类ID.

如果注册表项或CLSID值不存在,则MIME类型未知,或者没有默认应用程序来处理MIME类型application/pdf文件.