2010-09-22 37 views
2

我使用的Inno安裝程序包含兩個組件:一個用於32位計算機,一個用於64位。這些將在XP/Vista/Win7上運行。Inno安裝程序:禁用基於PC架構的組件

[Components] 
Name: Bin/32; Description: 32-bit; Types: full; Flags: dontinheritcheck 
Name: Bin/64; Description: 64-bit; Types: full; Flags: dontinheritcheck 

目前:

  • 兩個組件在默認情況下運行安裝程序時勾選。

我想是:

  • 適當的默認值(即,32位或64位打勾)根據用戶的機器上。
  • 對不適當的組件進行調色也是一種獎勵。

什麼我發現迄今:

  • ,我可能要在[代碼]部分使用帕斯卡。
  • IsWin64函數
  • 我可能想爲此使用事件,但找不到與我的需求相關的任何內容。

P.S.不幸的是,我無法爲每個架構安裝單獨的安裝程序。

回答

8

您可以檢查C:\Program Files\Inno Setup 5\Examples文件夾以獲取有關如何使用單個安裝程序爲不同架構安裝程序的示例。

檢查這些文件

  • 64BitThreeArch.iss
  • 64BitTwoArch.iss
  • 64Bit.iss

你可以使用這樣的事情

[Components] 
Name: Bin_32; Description: 32-bit; Types: full; Check: IsX86; Flags: dontinheritcheck 
Name: Bin_64; Description: 64-bit; Types: full; Check: IsX64; Flags: dontinheritcheck 

[Code] 
function IsX64: Boolean; 
begin 
    Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); 
end; 

function IsX86: Boolean; 
begin 
    Result := (Is64BitInstallMode=false) and (ProcessorArchitecture = paX86); 
end; 
+0

謝謝你帶領我Examples文件夾。 不幸的是,這並不適用於我,因爲它是在每個文件的基礎上切換;我正在尋找每個組件的基礎。像某種'檢查'功能的組件可能。 – Nockm 2010-09-22 10:55:12

+0

檢查更新的答案 – RRUZ 2010-09-22 11:07:11

+0

看來,檢查工作在[組件]部分 – Nockm 2010-09-22 11:07:13

相關問題