在非提升模式下卸载后如何打开网站?

问题描述

卸载后,使用发布的代码here来启动网页,我注意到Caused by: org.springframework.integration.handler.support.MessagingMethodInvokerHelper$IneligibleMethodException: Found more than one parameter type candidate: [org.springframework.batch.core.partition.StepExecutionSplitter] and [org.springframework.batch.core.StepExecution] 使用提升的凭据启动浏览器,该凭据认由程序和功能控制面板在启动卸载程序时使用

在卸载过程中不可能记录使用ShellExecAsOriginalUser的情况,并且here的建议似乎不适用于想要访问URL的情况。

关于如何处理此问题的任何建议?

解决方法

基于How to run exe with/without elevated privileges from PowerShell,这似乎可以解决问题:

Exec('explorer','https://www.example.com/','',SW_SHOW,ewNoWait,ErrorCode);

我相信它是可行的,因为尽管代码显然在explorer进程提升的情况下运行,但资源管理器不允许多个实例。因此,新实例将只要求资源管理器的现有实例(未提升)打开URL。现有的非高架浏览器实例将运行Web浏览器的非高架实例。

这类似于网络浏览器本身的工作方式。如果您从提升的进程(例如un / installer)运行chrome url(或任何其他浏览器),则如果尚未运行任何Chrome进程,则URL将在新的提升的Chrome浏览器中打开。但是,如果某些Chrome进程已经在运行,则新的提升过程将只要求现有的非提升过程打开URL。

唯一的区别是,尽管并非总是有一些Web浏览器进程在运行,但总有一个(未提升的)资源管理器进程