设置非默认浏览器在Windows 8 RTM(浏览器,火狐),并尝试这样运行的代码:
ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);
没关系。 但后来改变清单,要求管理权限或只是“以管理员身份运行”。
代码将无法正常工作。
好了,然后尝试运行使用“以管理员身份运行” 的任何应用程序。
你会看到同样的结果,链接不工作。
更改默认浏览器回到IE浏览器 - >一切工作正常。
在Windows 8之前的作品,有没有这样的水煤浆。
到底是怎么回事?
PS。 看来微软经历了自己的软件同样的问题:) 的Visual Studio 2012的Web发布的Windows 8 RTM失败浏览器中启动
我已经看到与Chrome浏览器相同的行为,直到今天。 花了一些时间试图弄清楚发生了什么事情,不能时间最长让Chrome拿出的ShellExecute()下提升的权限无论是。 完全关闭UAC时失败提升的权限(即UAC对话框,或以管理员身份运行)或偶数。
我结束了卸载并重新安装Chrome和实际固定它。
也看到了与其他浏览器的行为,与Firefox试了几次之后,但是我走进从Firefox设置默认程序设置,并明确(即在Windows中)设置为关联.htm文件和HTTP协议。 那工作过。
所以,看起来这是某种形式的登记问题,而不是在Windows中的实际问题。 第一件事,我会尝试是明确设置的关联在Windows中(而不是在浏览器设为默认浏览器)。 如果失败,请尝试重新安装浏览器...
@里克施特拉尔
你是不正确。 这不只是注册。 我用Photoshop CC和Windows 8的测试,我创建了一个启动的Photoshop,使其便携: - 具有管理权限,壳一体化不起作用。 - 当作为普通用户的身份运行,按预期工作壳一体化。
经测试在Windows 7 - 有或没有管理权限的工作。
我可以证实OP是正确的。
文章来源: ShellExecute fails if run from elevated process and non-default browser set in Windows 8 RTM