Проверьте, установлен ли foxit reader?

Используя С#, я хочу определить, установлен ли читатель foxit на компьютере с Windows. Как я могу этого добиться?

Заранее спасибо за вашу помощь.


person Hamza Ahmed Zia    schedule 20.09.2012    source источник
comment
Какой вариант вы пробовали и не сработали?   -  person Freeman    schedule 20.09.2012
comment
Я пока не пробовал никакого подхода @Freeman, я стараюсь изо всех сил. Любые предложения относительно того, где я должен начать?   -  person Hamza Ahmed Zia    schedule 20.09.2012
comment
На самом деле есть два пути.   -  person 51k    schedule 07.06.2016


Ответы (3)


Ответ находится здесь. Вы должны просмотреть реестр и найти имя «foxit reader».

person Dmitry Dovgopoly    schedule 20.09.2012
comment
Как ни странно @Dmitry, я открыл regedit на своей машине и вручную просмотрел список, но не смог найти запись для foxit reader, хотя на моей машине установлена ​​64-разрядная версия foxit reader. Так надежен ли этот метод? - person Hamza Ahmed Zia; 20.09.2012
comment
Вы смотрели в ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\Microsoft\Windows\CurrentVersion\Uninstall как для текущего пользователя, так и для локального компьютера? А в @SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall? - person Dmitry Dovgopoly; 20.09.2012
comment
Наконец-то я нашел его по этому адресу @HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Foxit Reader_is1 @Dmitry. Мне интересно, это произвольное место или 64-битная установка foxit всегда устанавливает здесь свои ключи реестра? А как насчет 32-битных машин? Или мне следует перебрать все указанные вами местоположения и проверить отображаемое имя/местоположение установки? - person Hamza Ahmed Zia; 20.09.2012
comment
Я думаю, что на 32-битных машинах вообще нет узла Wow6432Node, и вам следует перебрать все места, чтобы проверить установку. - person Dmitry Dovgopoly; 20.09.2012
comment
Wow6432Node — место, где все 32-битные приложения в 64-битных системах записывают свои данные. - person Dmitry Dovgopoly; 20.09.2012
comment
Спасибо @Dmitry за помощь.... - person Hamza Ahmed Zia; 20.09.2012
comment
В соответствующей заметке @Dmitry, как я могу определить в C #, является ли машина с Windows 32-битной или 64-битной? - person Hamza Ahmed Zia; 20.09.2012
comment
stackoverflow .com/questions/336633/ - person Dmitry Dovgopoly; 20.09.2012

Я бы сделал следующее:

  • Возьмите чистую машину.
  • Установите Foxit Reader.
  • Посмотрите, где он установлен.
  • Используйте функцию File.Exists вместе с Environment.GetSpecialFolder, чтобы проверить наличие исполняемого файла.

В качестве альтернативы, если путь может отличаться от того, где он был установлен, вы можете:

  • Возьмите чистую машину.
  • Установите Foxit Reader.
  • Найдите ключи реестра, которые были добавлены.
  • Используйте функции RegistryKey для проверки наличия связанных ключей.
person Uwe Keim    schedule 20.09.2012

Файлы могут быть установлены неправильно. То же самое относится к ключам реестра, которые хранятся в самом приложении. File.Exists на самом деле не означает, что он был установлен (и зарегистрирован как средство просмотра).

Я бы лично проверил базу данных установщика Windows на наличие файла Product. проверка реестра удаления является возможным подходом, однако вы также можете вызвать MsiQueryProductState с помощью вызовов Windows API.

person Myrtle    schedule 20.09.2012