NSIS: как проверить, что приложение установлено - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно проверить, установлено ли приложение Microsoft filter pack 2.0.Я нашел этот ответ, но в моем случае у меня нет имени приложения, вместо этого имя каталога с программой в реестре с именем {95140000-2000-0409-1000-0000000FF1CE} Вот мой код для определения установленного приложения:

ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FILTER_PACK_KEY}" "UninstallString"
IfErrors FilterPackNotFound FilterPackFound

1 Ответ

0 голосов
/ 06 февраля 2019

Реестр в 64-битной Windows имеет два «представления» , и 32-битные приложения по умолчанию обращаются к 32-битному представлению.

NSIS может получить доступ к 64-битному представлению с помощьюиспользуя инструкцию SetRegView:

Section
SetRegView 64
RegReadStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\{95140000-2000-0409-1000-0000000FF1CE}" "UninstallString"
SetRegView 32
MessageBox mb_ok $0
SectionEnd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...