Qt 調用本地瀏覽器打開URL


點擊Qt某些控件,查找本地瀏覽器打開前端傳遞的URL。

方法一:直接寫死本地瀏覽器地址

1 QString programAdress = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
2 QString m_strWebUrl = "http://www.baidu.com";
3 QStringList arguments;
4 arguments << "--chrome-frame" << m_strWebUrl;
5 QProcess *chromeProcess = new QProcess();
6 chromeProcess ->start(programAdress ,arguments );

方法二:本地庫

 1 SHELLEXECUTEINFOA info;
 2 memset(&info, 0, sizeof(info));
 3 std::string url = "http://www.baidu.com";
 4 std::string text = url;
 5 
 6 info.cbSize = sizeof(SHELLEXECUTEINFOA);
 7 info.hwnd = NULL;
 8 info.lpVerb = "open";
 9 info.lpFile = "chrome.exe";
10 info.lpParameters = text.c_str();
11 info.nShow = SW_SHOWMAXIMIZED;
12 
13 bool ret = ShellExecuteExA(&info);
SHELLEXECUTEINFOA、ShellExecuteExA 源自:C:\Program Files (x86)\Windows Kits\8.1\Include\um\shellapi.h
SW_SHOWMAXIMIZED  顯示方式  源自: C:\Program Files (x86)\Windows Kits\8.1\Include\um\WinUser.h

方法三:注冊表

1 #ifdef  WIN32
2     QSettings a("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Chrome.exe",QSettings::NativeFormat);
3     QSettings strPath = a.value("Default").toString();
4     QString strUrl = QString("\"%1\" %2").arg(strPath).srg(strUrl);
5     WinExec(strUrl.toStdString().c_str(),SW_SHOWNORMAL);
6 #else
7     QDesktopServices::openUrl(QUrl(strUrl));
8 #endif

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM