我知道已經有問題Execute different command in Inno Setup Run section based on Windows version有很好的答案。根據Windows版本在Inno Setup Run部分執行不同的BLOCK命令
我的問題是如何針對不同的目標Windows版本執行不同的命令塊。我的問題是,如果目標版本是Windows 7,並且Windows 8或更高版本的相同數量的不同命令,我有10-15個需要執行的命令。
是否有可能避免在每個命令需要第一種情況後需要添加; OnlyBelowVersion: 6.2
而在第二個塊中的每個命令之後需要; MinVersion: 6.2
?
我知道有預處理條件"#if"
,#else
和#endif
但當然只能在編譯時
編輯。 問題和答案Determine Windows version in Inno Setup雖然可能看起來類似於這個問題不回答它。我知道如何確定Inno Setup中的Windows版本。我也知道那些; MinVersion: 6.2
和; OnlyBelowVersion: 6.2
選項。我詢問是否可以指定一個命令塊(10-15個命令)並將該選項應用於整個塊,而不是單獨應用於每個命令。
編輯2 的目的不是爲了避免「神祕版本號」但要避免重複的相同條件下多次。並且爲了避免塊隨時間增長而忘記的風險。
,我發現迄今是使用CurStepChanged
過程中的解決方案:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
if IsWindows8OrLater() then
MsgBox('Running on Windows 8 Or Later', mbInformation, MB_OK)
// 15 comands or call of W8-specific procedure goes here
else begin
MsgBox('Running on Windows 7', mbInformation, MB_OK);
// 15 comands or call of W7-specific procedure goes here
end;
end;
但它看起來有點難看,我...
對不起,但是寫''的區別是什麼? MinVersion:15次命令後寫入15次'15次並寫入'; {#Windows8AndNewer}'15次命令後的15次。我現在將進一步編輯我的問題,以澄清我在尋找什麼 – mvidelgauz
我知道這只是稍微好一點,但再一次,沒有更好的方法。 –
當然,除了像已經發現的那樣,通過放棄'[Run]'部分並使用代碼。 –