如果从提升的进程和非默认浏览器设置在Windows 8 RTM运行的ShellExecute失败(S

2019-06-27 05:51发布

设置非默认浏览器在Windows 8 RTM(浏览器,火狐),并尝试这样运行的代码:

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

没关系。 但后来改变清单,要求管理权限或只是“以管理员身份运行”。

代码将无法正常工作。

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

你会看到同样的结果,链接不工作。

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

在Windows 8之前的作品,有没有这样的水煤浆。

到底是怎么回事?

PS。 看来微软经历了自己的软件同样的问题:) 的Visual Studio 2012的Web发布的Windows 8 RTM失败浏览器中启动

Answer 1:

我已经看到与Chrome浏览器相同的行为,直到今天。 花了一些时间试图弄清楚发生了什么事情,不能时间最长让Chrome拿出的ShellExecute()下提升的权限无论是。 完全关闭UAC时失败提升的权限(即UAC对话框,或以管理员身份运行)或偶数。

我结束了卸载并重新安装Chrome和实际固定它。

也看到了与其他浏览器的行为,与Firefox试了几次之后,但是我走进从Firefox设置默认程序设置,并明确(即在Windows中)设置为关联.htm文件和HTTP协议。 那工作过。

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



Answer 2:

@里克施特拉尔

你是不正确。 这不只是注册。 我用Photoshop CC和Windows 8的测试,我创建了一个启动的Photoshop,使其便携: - 具有管理权限,壳一体化不起作用。 - 当作为普通用户的身份运行,按预期工作壳一体化。

经测试在Windows 7 - 有或没有管理权限的工作。

我可以证实OP是正确的。



文章来源: ShellExecute fails if run from elevated process and non-default browser set in Windows 8 RTM