【问题标题】:QDesktopServices::openUrl() doesn't open page in chrome on windows. Workaround?QDesktopServices::openUrl() 不会在 Windows 上的 chrome 中打开页面。解决方法?
【发布时间】:2013-04-20 01:16:03
【问题描述】:
QDesktopServices::openUrl(QUrl("http://google.com"));

适用于默认浏览器 ie9、ie8、firefox 或 opera

如果默认浏览器是 chrome,则没有任何反应

QtCreator 调试器日志我可以看到类似

的行
ModLoad: 00000000`05250000 00000000`05308000   iexplore.exe

ModLoad: 00000000`04db0000 00000000`04ef8000   chrome.exe

所以它确实有效,但即 ff 等打开具有指定 url 的新选项卡而 chrome 没有

我想这是错误

前段时间效果很好

可能是我的系统(ENV vars 等)有问题吗?

请帮助解决方法

我更喜欢跨平台,但在 Windows 上正常工作具有最高优先级

可能的解决方案(winapi SHELLEXECUTE)- 真的很讨厌丑陋的#ifdef,但可以选择

PS:抱歉英语不好。

【问题讨论】:

    标签: c++ windows qt google-chrome


    【解决方案1】:

    我不认为这真的是您的应用程序的问题。我认为这更多的是关于 Chrome 如何处理此类调用。在你的位置上,我会选择 winpai SHELLEXECUTE 解决方案。与将默认浏览器调用移至操作系统而不是 Qt 库的好处相比,#ifdef 并不难看。

    【讨论】:

    • ShellExecute(NULL, L"open", qstring_to_wchar_t(url), NULL, NULL, SW_SHOWNORMAL);既不工作也只有 ShellExecute(NULL, L"runas", qstring_to_wchar_t(exe), qstring_to_wchar_t(params), NULL, SW_SHOWNORMAL);其中 exe - Chrome 参数的路径 - "-- "google.com""
    • ShellExecute(NULL, L"open", qstring_to_wchar_t(url), NULL, NULL, SW_SHOWNORMAL); - 不工作 ShellExecute(NULL, L"runas", qstring_to_wchar_t(exe), qstring_to_wchar_t(params), NULL, SW_SHOWNORMAL); - 工作,但要求提升
    • exe - "C:\Users\USER-01\AppData\Local\Google\Chrome\Application\chrome.exe" params = " -- "http://google.com""
    • //根据 ...我知道,42 可以,但 chrome 对 "open" 没有任何作用
    • 不,它会打开标题为“google.com”的新 cmd 窗口我知道这是我的电脑问题,但这是相当普遍的问题,现在 ie、ff 和 opera 出现问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多