2010-04-21 123 views
1

我的創建nsis設置有一些問題。我需要檢查產品是否已安裝,然後獲取已安裝產品的路徑。這是因爲我想構建一個「Feature-Setup」,它將一些其他組件安裝到先前安裝的文件夾中。有誰知道如何建立這個安裝程序?如果功能設置將開始安裝並檢查已安裝產品的路徑,這將非常精彩。檢查完成後,路徑應該是(只讀)在「選擇安裝位置」下的「目標文件夾」中。NSIS已安裝產品

感謝所有幫助
布巴

回答

4

NSIS不會對自己的任何地方寫東西,所以,除非你加入<HKLM/HKCU>\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall或軟件\ 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 
相關問題