Bru*_*run 8 security winapi shellexecute windows-8
在Windows 8 RTM(Chrome,Firefox)中设置非默认浏览器,并尝试运行如下代码:
ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);
没关系.但是然后将清单更改为需要管理权限或只是"以管理员身份运行".
代码不起作用.
好的,然后尝试使用"以管理员身份运行"运行任何应用程序.
你会看到相同的结果,链接不起作用.
将默认浏览器更改回IE - >一切正常.
在Windows 8以前的版本中,没有这样的行为.
到底是怎么回事?
PS.看来微软在他们自己的软件中遇到了同样的问题:) Windows 8 RTM上的Visual Studio 2012 Web发布无法启动浏览器
直到今天我在 Chrome 上也看到了同样的行为。花了一些时间试图弄清楚发生了什么,但在很长一段时间内也无法让 Chrome 在提升的权限下提供 ShellExecute() 。提升权限(即 UAC 对话框或以管理员身份运行)或什至完全关闭 UAC 时失败。
我最终卸载并重新安装了 Chrome,这实际上解决了这个问题。
也看到了其他浏览器的行为,但是在尝试了几次 FireFox 之后,我进入了 FireFox 的“设置默认程序”设置,并明确(即在 Windows 中)设置 .htm 文件和 HTTP 协议的关联。这也有效。
所以看起来这是某种注册问题,而不是 Windows 中的实际问题。我要尝试的第一件事是在 Windows 中显式设置关联(而不是在浏览器中设置默认浏览器)。如果失败请尝试重新安装浏览器...
| 归档时间: |
|
| 查看次数: |
3701 次 |
| 最近记录: |