2014-02-17 76 views
2

我使用NSIS創建了一個簡單的安裝程序。我希望安裝程序能夠檢測到客戶端正在使用的操作系統。如果客戶端使用的是32位操作系統,則應將所有文件複製到Program Files(32位)文件夾,否則如果他/她使用的是64位位操作系統,所有的文件應該被複制到64 bit.Can任何人幫助我如何算出這個..使用NSIS將32位和64位安裝程序合併到一個安裝程序中

感謝

回答

2

同上(不要忘了包括LogicLib.nsh x64.nsh)

Function .onInit 

    ${If} ${RunningX64} 
     StrCpy $INSTDIR "$PROGRAMFILES64\myProduct" 
    ${Else} 
     StrCpy $INSTDIR "$PROGRAMFILES\myProduct" ; $PROGRAMFILES32 also works 
    ${EndIf} 

FunctionEnd 

或者,您也可以設置註冊表視圖(見SetRegView

+0

感謝您的回覆。我應該在哪個部分添加上面的代碼? –

+0

非常感謝..它的工作! :-) 堆棧溢出總是幫助我解決任何類型的編程問題.. –

+0

我把它放在一個.onInit函數中,將更新上面的例子 – idleberg

1

下面的代碼做任務。

!include "x64.nsh" 
. 
. 
. 
. 
var copyDir 

section "" 

${If} ${RunningX64} 
strcpy $copyDir "C:\\Program Files(x64)\\Foo" 

${else} 
strcpy $copyDir "C:\\Program Files\\Foo" 
sectionend 

雖然如果只是檢測到Program Files目錄下,我認爲$ProgramFiles將根據OS位自動檢測默認的Program Files目錄。

+0

您的代碼works.Thanks :-) –

相關問題