0

我有一个旧的 vb.net 1.1 安装程序,它在 winxp 上运行良好,我需要对其进行调整以便它在 win7 上运行。安装程序的架构非常简单。它由 2 个应用程序组成,第一个应用程序将启动第二个应用程序(它是执行实际安装的应用程序),以在调用 CreateProcessWithLogonW 的高级用户凭据下执行。

在挣扎了一段时间后,我想出了UAC在中间。据我所知,除了在每台机器上禁用 UAC 之外,没有其他解决方法,这是我们无法做到的。

然后调查我想出了一种要求 elevtion的方法。因此,我将其应用于第二个应用程序,双击它会启动 UAC 并按预期完成工作。但是当我尝试从第一个应用程序(启动器)通过 CreateProcessWithLogonW 执行它时,我仍然收到错误 740 ERROR_ELEVATION_REQUIRED 并且显然 UAC 从未启动。

还有什么我应该看的吗?我应该使用另一个 API 在 Windows 7 上启动进程吗?

提前致谢!

4

1 回答 1

0

您可以访问这两个应用程序吗?你应该研究引导程序。基本上它是你处理的。我熟悉 WIX,它很容易创建一个将多个安装文件链接在一起的引导程序(安装文件)。您还可以通过操作系统指定“需要的高度”。您仍然可以从 microsoft 下载安装程序,因此您的安装程序可能有些奇怪。我已经在数百台机器上推出了 1.1 安装免提,其中大多数都启动了我最终 MSI 的其他先决条件。

于 2013-08-23T06:16:27.333 回答