我使用NSIS創建了一個簡單的安裝程序。我希望安裝程序能夠檢測到客戶端正在使用的操作系統。如果客戶端使用的是32位操作系統,則應將所有文件複製到Program Files(32位)文件夾,否則如果他/她使用的是64位位操作系統,所有的文件應該被複制到64 bit.Can任何人幫助我如何算出這個..使用NSIS將32位和64位安裝程序合併到一個安裝程序中
感謝
我使用NSIS創建了一個簡單的安裝程序。我希望安裝程序能夠檢測到客戶端正在使用的操作系統。如果客戶端使用的是32位操作系統,則應將所有文件複製到Program Files(32位)文件夾,否則如果他/她使用的是64位位操作系統,所有的文件應該被複制到64 bit.Can任何人幫助我如何算出這個..使用NSIS將32位和64位安裝程序合併到一個安裝程序中
感謝
同上(不要忘了包括LogicLib.nsh和 x64.nsh)
Function .onInit
${If} ${RunningX64}
StrCpy $INSTDIR "$PROGRAMFILES64\myProduct"
${Else}
StrCpy $INSTDIR "$PROGRAMFILES\myProduct" ; $PROGRAMFILES32 also works
${EndIf}
FunctionEnd
或者,您也可以設置註冊表視圖(見SetRegView)
下面的代碼做任務。
!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目錄。
您的代碼works.Thanks :-) –
感謝您的回覆。我應該在哪個部分添加上面的代碼? –
非常感謝..它的工作! :-) 堆棧溢出總是幫助我解決任何類型的編程問題.. –
我把它放在一個.onInit函數中,將更新上面的例子 – idleberg