从启动 msi 安装程序的位置获取位置

Get location from where msi installer is being launched

我正在使用 VC++ 制作一个 msi 安装程序,它将 *.jar 文件复制到指定的目标位置。 *.jar 文件随 msi 安装程序一起提供(Duh!)。但我需要找到启动 msi 安装程序的位置。例如,如果我在 DVD 中提供整个安装程序,并且用户将 DVD 放入驱动器中,并且 his\her DVD 驱动器是 G:\,我需要安装程序知道它是从 "G:" 驱动器,以便它应该在 G:\ 中查找 *.jar 文件。 objective 是让 msi 安装程序从任何地方启动,以便可以获得需要从中复制支持文件的必要路径。目前,msi 安装程序是从 *.cpp 文件启动的,我已经提到 *.jar 文件所在的路径专门针对 msi 安装程序(换句话说,在 c++ 程序中硬编码路径)。我需要实时获取路径。我是初学者。有人可以帮我吗?

您的问题令人困惑,因为 C++ 是一种语言/编译器,用于在 Windows 上使程序可执行。它不会生成 MSI。

从 MSI 的角度来看,您可能希望查看 SourceDir 或 OriginalDatabase 属性 以查找您的安装程序 运行 来自哪里。

好的。得到了我的问题的答案。我在启动条件选项卡中创建了两个 "Add Registry search"。第一个 属性 在 属性、SOFTWARE\JavaSoft\Java Runtime Environment 中被命名为 JREVERSION 作为 RegKey 和CurrentVersion 作为“属性”选项卡中设置的值。

第二个属性在属性中被命名为JREVERSIONPATH,至于RegKey,SOFTWARE\JavaSoft\Java Runtime Environment\[JREVERSION] 已给出,对于值,已指定 JavaHome。因此,JREVERSION returns 最新版本号和此 属性 用于 JREVERSIONPATH 的路径中以查找 JavaHome,里面包含了需要的目录路径。
最后,在“文件系统”选项卡上,[JREVERSIONPATH] 被指定为 DefaultLocation 的值。