#c_sharp #pdf #com #windowsinstaller
У нас в программу встроен элемент управления Adobe Reader с помощью AcroPdfLib. Если не стоит Adobe Reader, конструктор формы падает с ошибкой. Хотелось бы реализовать такое поведение: если не установлен Adobe Reader, не открывать pdf-документ в нашей программе, а предложить пользователю, сохранить его. Еще лучшим вариантом было бы использование для отображения pdf-документов такой библиотеки, которая не требует установки чего бы то ни было, чтобы можно было просто положить сборку в дистрибутив - и всё работает.
Ответы
Ответ 1
Проверка записи в реестре: 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.
Комментариев нет:
Отправить комментарий