簡體   English   中英

如何使用 Inno Setup 的 [Code] 部分的值設置注冊表項(環境變量)?

[英]How to set registry key (environment variable) with value from [Code] section of Inno Setup?

我正在使用 Inno Setup 創建安裝程序,如果用戶尚未設置,我需要為用戶設置環境變量。

我真正想要實現的目標如下:

  1. 檢測系統是否有名為“JAVA_HOME”的環境變量。

  2. 如果已經有,則跳過其余步驟。 如果沒有,那么我會顯示一個頁面,提示用戶輸入他們安裝JDK的路徑,並設置為環境變量的值。

我的問題是:如何根據用戶輸入的值設置環境變量? 我搜索了一些文章,我發現設置環境變量的唯一方法是這樣的

[Registry]
; set PATH
Root: HKLM; Subkey: "Environment"; ValueType:string; ValueName:"VARIABLE_NAME"; \
    ValueData:"new_value" ; Flags: preservestringtype ;

但顯然,這無法實現我想要做的事情,因為該值必須寫在“安裝程序構建之前”。 那么任何人都可以擁有任何設備嗎? 謝謝!

您不需要代碼來設置注冊表項(= 環境變量)。 您只需要從代碼中獲取注冊表項值(= 環境變量值)。

您正在尋找 腳本常量

[Registry]
Root: HKLM; Subkey: "Environment"; ValueType: string; ValueName: "VARIABLE_NAME"; \
    ValueData: "{code:GetJDKPath}"; Flags: preservestringtype;

[Code]

var
  { A global variable that contains the path provided by the user in step 2 }
  JDKPath: string;

function GetJDKPath(Param: string): string;
begin
  Result := JDKPath;
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM