我正在使用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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句