Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if there is any kind of PDF Reader installed

I have a Help function in my Application, that consists of one webbrowser control. That webbrowser control gets filled with a .pdf file, the source for that .pdf file is our own website.

The problem is, that not everyone will have a PDF Reader installed on their machine, so I want to check whether one is installed: Yes or No. I searched the internet and I mostly saw that users on Stackoverflow where wanting to check if Adobe Reader was installed, that is not what I want. I need to know IF there is a PDF Reader somewhere installed on the machine.

I did find the following code, that can possibly help me:

public void CheckPdfReaderAvailable()      
{      
    RegistryKey key = Registry.ClassesRoot.OpenSubKey(".pdf");      
    Assert.IsNotNull(key);      
}  

As I look at the above code, my thoughts are that the code checks if the registry does know the .pdf format, but I'am not sure.

Can somebody tell me how to use the code above or provide me an example, about how I should take down this problem?

Thanks in advance!

EDIT:

The following answer helped my out: https://stackoverflow.com/a/774482/1661209

Another way to solve this problem, is to add a pdf reader lite to the prerequisites and make the users install that first, you don't have to check for a pdf Reader, because you know one is installed then, if it isn't you could say it is the mistake of the user that they can't use the help function, because you offered them a way to install the pdf reader easily using the published project.

like image 414
Max Avatar asked Apr 12 '13 07:04

Max


1 Answers

Apart from whether it is useful to know or not, you could probable check the following registry key:

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

This will have an entry CLSID, which points to the class ID of the default application.

If the registry key or CLSID value is not present, then the MIME type is unknown, or there is no default application to handle the MIME type application/pdf files.

like image 200
John Willemse Avatar answered Oct 19 '22 02:10

John Willemse