1

在我的安装程序中,我需要一些启动器,根据用户输入将它们安装为服务。除了名称中的索引之外,这些启动器都是相同的。

我不想手动创建所有这些启动器,因为那将无法维护。

有没有办法在安装程序运行时复制和修改启动器,然后将它们安装为服务?

4

2 回答 2

0

没有理由在运行时复制服务启动器。您可以使用“安装服务”操作来安装具有不同服务名称的多个服务。为此,请在该操作的“服务”属性中选择“其他服务可执行文件”,然后您可以选择和可执行以及(变量)服务名称以及变量参数。

于 2012-05-10T07:57:55.293 回答
0

我也有一个用例,我想在其中将启动器重命名为运行时。

假设您想要有一个 Testinfrastructure,您不仅要测试程序的一个实例,而且要测试多个实例。并且您想使用 Install4J 中的启动器来启动您的应用程序。

假设您有 5 个服务需要启动以提供所需的功能。现在考虑为 10 个客户提供 10 个实例,您想进行测试。此外,您不想在 10 台不同的机器、Docker、VM 或任何其他机器上测试它,而是在一台机器上测试它。

这是不可能的,因为您无法在运行时重命名服务。沃尔夫冈,我理解你的问题。我的也是类似的。

我玩了一下 Launcher.exe。也许您的案例有解决方案。假设您想要的 Launchernames 的长度都相同,例如: - Launcher_01.exe - Launcher_02.exe - Launcher_03.exe - Launcher_04.exe - Launcher_05.exe

然后,您可以生成一个名为“Launcher_xy.exe”的启动器。

现在可以打开您最喜欢的 Hex-Editor 并搜索“Launcher_xy”,将其重命名为“Launcher_01”并将数据保存回 exe 文件。但请注意不要更改名称的长度。如果您更改长度,它将不起作用。

因此,如果您更改了名称,然后执行

Launcher_xy.exe -install non-interactive

您将在 Windows-Services 下获得一个名为“Launcher_01.exe”的新服务。

于 2017-03-07T14:10:01.173 回答