9

在 Windows 8 RTM(Chrome、Firefox)中设置非默认浏览器并尝试运行如下代码:

ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);

没关系。但是然后将清单更改为需要管理权限或仅“以管理员身份运行”。

代码不起作用。

好的,然后尝试使用“以管理员身份运行”运行任何应用程序。

您将看到相同的结果,链接不起作用。

将默认浏览器更改回 IE -> 一切正常。

在 Windows 8 以前的版本中没有这样的行为。

到底是怎么回事?

PS。微软似乎在他们自己的软件中遇到了同样的问题 :) Visual Studio 2012 Web Publish on Windows 8 RTM Fails Browser Launch

4

2 回答 2

3

直到今天,我一直在使用 Chrome 看到相同的行为。花了一些时间试图弄清楚发生了什么,并且在很长一段时间内都无法让 Chrome 在提升的权限下提出 ShellExecute()。提升权限(即 UAC 对话框或以管理员身份运行)或什至完全关闭 UAC 时失败。

我最终卸载并重新安装了 Chrome,这实际上修复了它。

也看到了其他浏览器的行为,但是在使用 FireFox 进行了几次尝试后,我进入了 FireFox 的“设置默认程序”设置,并明确(即在 Windows 中)设置了 .htm 文件和 HTTP 协议的关联。那也行得通。

所以看起来这是某种注册问题,而不是 Windows 中的实际问题。我要尝试的第一件事是在 Windows 中显式设置关联(而不是在浏览器中设置默认浏览器)。如果失败,请尝试重新安装浏览器...

于 2012-12-13T06:24:52.813 回答
0

@里克斯特拉尔

你不正确。这不仅仅是注册。我使用 Photoshop CC 和 Windows 8 进行了测试。我为 Photoshop 创建了一个启动器以使其可移植: - 使用管理权限,shell 集成不起作用。- 当以普通用户身份运行时,shell 集成按预期工作。

在 Windows 7 上测试。 - 使用或不使用管理权限。

我可以确认 OP 是正确的。

于 2013-06-23T16:20:21.487 回答