[英]How to set registry key (environment variable) with value from [Code] section of Inno Setup?
我正在使用 Inno Setup 創建安裝程序,如果用戶尚未設置,我需要為用戶設置環境變量。
我真正想要實現的目標如下:
檢測系統是否有名為“JAVA_HOME”的環境變量。
如果已經有,則跳過其余步驟。 如果沒有,那么我會顯示一個頁面,提示用戶輸入他們安裝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.