我有一个旧的 vb.net 1.1 安装程序,它在 winxp 上运行良好,我需要对其进行调整以便它在 win7 上运行。安装程序的架构非常简单。它由 2 个应用程序组成,第一个应用程序将启动第二个应用程序(它是执行实际安装的应用程序),以在调用 CreateProcessWithLogonW 的高级用户凭据下执行。
在挣扎了一段时间后,我想出了UAC在中间。据我所知,除了在每台机器上禁用 UAC 之外,没有其他解决方法,这是我们无法做到的。
然后调查我想出了一种要求 elevtion的方法。因此,我将其应用于第二个应用程序,双击它会启动 UAC 并按预期完成工作。但是当我尝试从第一个应用程序(启动器)通过 CreateProcessWithLogonW 执行它时,我仍然收到错误 740 ERROR_ELEVATION_REQUIRED 并且显然 UAC 从未启动。
还有什么我应该看的吗?我应该使用另一个 API 在 Windows 7 上启动进程吗?
提前致谢!