Страницы

Поиск по вопросам

пятница, 14 декабря 2018 г.

Как программно проверить наличие установленного Adobe Reader?

У нас в программу встроен элемент управления Adobe Reader с помощью AcroPdfLib. Если не стоит Adobe Reader, конструктор формы падает с ошибкой. Хотелось бы реализовать такое поведение: если не установлен Adobe Reader, не открывать pdf-документ в нашей программе, а предложить пользователю, сохранить его. Еще лучшим вариантом было бы использование для отображения pdf-документов такой библиотеки, которая не требует установки чего бы то ни было, чтобы можно было просто положить сборку в дистрибутив - и всё работает.


Ответ

Проверка записи в реестре: RegistryKey adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe");
if (adobe != null) { RegistryKey acrobatReader = adobe.OpenSubKey("Acrobat Reader");
if (acrobatReader != null) { // TODO: ... } } Проверка GUID для инсталлятора, если GUID известны: bool installed = codes.Any(guid => { var code = "{" + guid.ToString().ToUpper() + "}"; var state = MsiQueryProductState(code);
return state == 3 || state == 5); }); Здесь codes - это guid для версий Acrobat Reader. Варианты просмотра pdf-файлов на C# без установленного софта от Adobe: View PDF files in C# using the Xpdf and muPDF library, Print PostScript PDF Viewer Control Without Acrobat Reader Installed

Комментариев нет:

Отправить комментарий