日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows编程—获取操作系统默认浏览器路径

發布時間:2025/3/15 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows编程—获取操作系统默认浏览器路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 分析
  • 代碼

前言

筆者有需求,需要獲取當前的默認瀏覽器的路徑。網上的其他方法筆者沒有去試。這里筆者采用的方式在win10 下是可行的,win7、winXp 沒有測試。筆者使用 QQ電腦管家—>工具箱—>上網—>瀏覽器保護 進行默認瀏覽器設置 是不成功的。所以還是到 Win10 設置—>默認應用—>Web瀏覽器 進行設置是可行。

分析

筆者這里那 QQ瀏覽器和Chrome瀏覽器 進行測試。

打開http或者https網站鏈接時的默認瀏覽器是在下面的注冊表項中進行關聯的

計算機\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http 計算機\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https

一般切換默認瀏覽器后這2個都是一樣的,當然你也可以手動改成不一樣的。

具體默認瀏覽器的設置是在計算機\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice 項下的ProgId鍵對應的值中。

ProgId是個啥呢?全稱應該為program identifier程序名稱信息。

QQBrowser默認是安裝當前機器下的,所以它的ProgId在HKEY_LOCAL_MACHINE
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QQBrowser.Protocol

Chrome默認是安裝在當前用戶下的,所以它的ProgId在HKEY_CURRENT_USER
計算機\HKEY_CURRENT_USER\Software\Classes\ChromeHTML.WVRE7ETNMLLK7SQAQPVF6OOAKA

所以我們通過注冊表信息能得到當前默認瀏覽器的全路徑。

代碼

代碼很簡單,就是注冊表的讀取,代碼筆者使用的MFC那一套。

CString CUtility::GetDefaultBrowser() {// 計算機\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\httpCString browserPath = _T("");CString browserCmd = _T("");CRegKey reg;if (reg.Open(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice"),KEY_READ) == ERROR_SUCCESS){TCHAR szValue[512] = { 0 };DWORD dwSize = 512;if (reg.QueryStringValue(_T("ProgId"),szValue,&dwSize) == ERROR_SUCCESS){// 計算機\HKEY_LOCAL_MACHINE\Software\Classes\ 或者 計算機\HKEY_CURRENT_USER\Software\Classes\ 下CString ProgId = szValue;browserCmd.Format(_T("SOFTWARE\\Classes\\%s\\shell\\open\\command"),ProgId);reg.Close();TCHAR szValue2[512] = { 0 };DWORD dwSize2 = 512;if(reg.Open(HKEY_LOCAL_MACHINE,browserCmd,KEY_READ) == ERROR_SUCCESS){if (reg.QueryStringValue(_T(""),szValue2,&dwSize2) == ERROR_SUCCESS){browserCmd = szValue2;}}else if( reg.Open(HKEY_CURRENT_USER,browserCmd,KEY_READ) == ERROR_SUCCESS ){if (reg.QueryStringValue(_T(""),szValue2,&dwSize2) == ERROR_SUCCESS){browserCmd = szValue2;}}}}if(!browserCmd.IsEmpty()){int index = browserCmd.ReverseFind(L'.');browserPath = browserCmd.Mid(1,index+3);}return browserPath; }

總結

以上是生活随笔為你收集整理的Windows编程—获取操作系统默认浏览器路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。