NSIS已安装产品
我创建的nsis设置有一些问题。我需要检查产品是否已安装,然后获取已安装产品的路径。这是因为我想构建一个“功能设置”,将一些其他组件安装到以前安装的文件夹中。有人知道如何构建这个安装程序吗?如果功能安装程序将启动安装并检查已安装产品的路径,那将是非常棒的。检查完成后,路径应位于“选择安装位置”下的“目标文件夹”中(只读) 谢谢你的帮助NSIS已安装产品,nsis,Nsis,我创建的nsis设置有一些问题。我需要检查产品是否已安装,然后获取已安装产品的路径。这是因为我想构建一个“功能设置”,将一些其他组件安装到以前安装的文件夹中。有人知道如何构建这个安装程序吗?如果功能安装程序将启动安装并检查已安装产品的路径,那将是非常棒的。检查完成后,路径应位于“选择安装位置”下的“目标文件夹”中(只读) 谢谢你的帮助 BubaNSIS本身不会在任何地方编写任何内容,因此除非您自己在\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninst
BubaNSIS本身不会在任何地方编写任何内容,因此除非您自己在
\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
或SOFTWARE\Yourcompany\Yourapp中添加条目,否则您几乎必须使用FindFirst,FindNext搜索机器。(丑)
如果您有注册表项,则可以使用InstallDirRegKey或常规注册表函数:
!define MyRegKey "Software\MyCompany\MyApp"
InstallDirRegKey HKLM "${MyRegKey}" InstallDir
var LockDirPage
!include LogicLib.nsh
Function .onInit
${If} ${FileExists} "$instdir\MyApp.exe"
StrCpy $LockDirPage 1
${EndIf}
FunctionEnd
Function dirshow
${If} $LockDirPage = 1
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $1 $0 0x3FB
EnableWindow $1 0
GetDlgItem $1 $0 0x3E9
EnableWindow $1 0
${EndIf}
FunctionEnd
page directory "" dirshow
page instfiles
Section
WriteRegStr HKLM "${MyRegKey}" InstallDir $instdir ;save location
SectionEnd
NSIS本身不会在任何地方编写任何内容,因此除非您自己向
\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
或SOFTWARE\Yourcompany\Yourapp添加条目,否则您几乎必须使用FindFirst,FindNext搜索机器。(丑)
如果您有注册表项,则可以使用InstallDirRegKey或常规注册表函数:
!define MyRegKey "Software\MyCompany\MyApp"
InstallDirRegKey HKLM "${MyRegKey}" InstallDir
var LockDirPage
!include LogicLib.nsh
Function .onInit
${If} ${FileExists} "$instdir\MyApp.exe"
StrCpy $LockDirPage 1
${EndIf}
FunctionEnd
Function dirshow
${If} $LockDirPage = 1
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $1 $0 0x3FB
EnableWindow $1 0
GetDlgItem $1 $0 0x3E9
EnableWindow $1 0
${EndIf}
FunctionEnd
page directory "" dirshow
page instfiles
Section
WriteRegStr HKLM "${MyRegKey}" InstallDir $instdir ;save location
SectionEnd