如何使用Inno Setup的[Code]部分中的值设置注册表项(环境变量)?

阿拉夜

我正在使用Inno Setup创建安装程序,如果尚未设置用户,则需要为用户设置环境变量。

我要实现的目标如下:

  1. 检测系统是否具有名为“ JAVA_HOME”的环境变量。

  2. 如果已经存在,则跳过其余步骤。如果不是,那么我将显示一个页面,提示用户输入安装JDK的路径,并将其设置为环境变量的值。

我的问题是:如何根据用户输入的值设置环境变量?我搜索了一些文章,发现设置环境变量的唯一方法是这样

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

但是很显然,这无法实现我想做的事情,因为必须在构建安装程序之前“将该值写入”。那么任何人都可以拥有任何设备吗?谢谢!

马丁·普里克里(Martin Prikryl)

您不需要代码来设置注册表项(=环境变量)。您只需要从代码中获取注册表项值(=环境变量值)即可。

您正在寻找一个脚本化常量

[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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Inno Setup脚本中使用注册表项/值的一部分

来自分类Dev

如何从Inno Setup安装程序设置全局环境变量?

来自分类Dev

使用Inno设置获取环境变量

来自分类Dev

在Inno Setup中将值写入存储在数组中的所有注册表项

来自分类Dev

Inno Setup - 拒绝注册表项的 ACL

来自分类Dev

如何使用Inno Setup将HEX-Data添加到注册表中?

来自分类Dev

在注册表中使用环境变量作为命令

来自分类Dev

Inno Setup [注册表]-使用函数返回值

来自分类Dev

如何在kubernetes的环境变量中设置mountPath的值?

来自分类Dev

如何在WIX安装程序中设置卸载(InstallLocation)注册表项值

来自分类Dev

如何使用Inno Setup检查Internet连接

来自分类Dev

Inno Setup使用{reg}常量引用包含括号的注册表项

来自分类Dev

如何在不访问注册表的情况下仅返回环境变量中的用户Path?

来自分类Dev

Inno Setup-防止安装程序添加注册表项并包含在程序/功能中

来自分类Dev

Inno Setup:仅在需要时创建卸载注册表项

来自分类Dev

如何在Inno Setup的[CustomMessages]部分中使用通配符?

来自分类Dev

如何在Inno Setup中使用Pascal变量?

来自分类Dev

如何使用通配符测试Inno Setup中是否存在文件

来自分类Dev

如何使用Puppet在Ubuntu OS中设置环境变量

来自分类Dev

使用注册表值在批处理文件中设置变量

来自分类Dev

如何使用vb.net从注册表项中的多个valueNames中搜索值

来自分类Dev

如何在Inno Setup中将LanguageID写入注册表?

来自分类Dev

在 Qt 中,如何使用 QSettings 创建/修改/删除 Windows 注册表项/值?

来自分类Dev

如何使用Chef设置环境变量?

来自分类Dev

如何使用Node设置环境变量?

来自分类Dev

如何使用Inno Setup作为必备组件安装.NET Framework?

来自分类Dev

如何使用Inno Setup支持数千个文件?

来自分类Dev

Inno Setup:如何在InitializeWizard中使用{app}?

来自分类Dev

如何在Inno Setup中使用特殊字符?

Related 相关文章

  1. 1

    在Inno Setup脚本中使用注册表项/值的一部分

  2. 2

    如何从Inno Setup安装程序设置全局环境变量?

  3. 3

    使用Inno设置获取环境变量

  4. 4

    在Inno Setup中将值写入存储在数组中的所有注册表项

  5. 5

    Inno Setup - 拒绝注册表项的 ACL

  6. 6

    如何使用Inno Setup将HEX-Data添加到注册表中?

  7. 7

    在注册表中使用环境变量作为命令

  8. 8

    Inno Setup [注册表]-使用函数返回值

  9. 9

    如何在kubernetes的环境变量中设置mountPath的值?

  10. 10

    如何在WIX安装程序中设置卸载(InstallLocation)注册表项值

  11. 11

    如何使用Inno Setup检查Internet连接

  12. 12

    Inno Setup使用{reg}常量引用包含括号的注册表项

  13. 13

    如何在不访问注册表的情况下仅返回环境变量中的用户Path?

  14. 14

    Inno Setup-防止安装程序添加注册表项并包含在程序/功能中

  15. 15

    Inno Setup:仅在需要时创建卸载注册表项

  16. 16

    如何在Inno Setup的[CustomMessages]部分中使用通配符?

  17. 17

    如何在Inno Setup中使用Pascal变量?

  18. 18

    如何使用通配符测试Inno Setup中是否存在文件

  19. 19

    如何使用Puppet在Ubuntu OS中设置环境变量

  20. 20

    使用注册表值在批处理文件中设置变量

  21. 21

    如何使用vb.net从注册表项中的多个valueNames中搜索值

  22. 22

    如何在Inno Setup中将LanguageID写入注册表?

  23. 23

    在 Qt 中,如何使用 QSettings 创建/修改/删除 Windows 注册表项/值?

  24. 24

    如何使用Chef设置环境变量?

  25. 25

    如何使用Node设置环境变量?

  26. 26

    如何使用Inno Setup作为必备组件安装.NET Framework?

  27. 27

    如何使用Inno Setup支持数千个文件?

  28. 28

    Inno Setup:如何在InitializeWizard中使用{app}?

  29. 29

    如何在Inno Setup中使用特殊字符?

热门标签

归档