乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      VC獲取默認(rèn)瀏覽器

       firefox_zyw 2014-01-09

      如何獲取系統(tǒng)當(dāng)前的默認(rèn)瀏覽器呢?呃,如果你說(shuō),去讀 HKEY_CLASSES_ROOT\http\shell\open\command 的注冊(cè)表值,也不是不可以,但在
      WIN7 下不一定正確。那么我是怎么知道的呢?





      昨天這樣讀了半天,發(fā)現(xiàn)總是不正確,我們將 Chrome 設(shè)為默認(rèn)瀏覽器,發(fā)現(xiàn) QQ 電腦管家彈出提示,然后果斷打開(kāi)之,發(fā)現(xiàn):











      我們果斷得到了一個(gè)注冊(cè)表項(xiàng):


      HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\Ftp\UserChoice[Progid]。


      然后發(fā)現(xiàn)它的值為 ChromeHTML.FXI4CGER3K4X3DSME7GMQ74NWM。





      然后我們?nèi)?span style="font-family: Comic Sans MS;">HKEY_CLASSES_ROOT\ChromeHTML.FXI4CGER3K4X3DSME7GMQ74NWM\shell\open\command 下,就可以讀出默認(rèn)值了。











      如果是 IE 瀏覽器的話,將在 HKEY_CLASSES_ROOT\IE.FTP\shell\open\command 下獲取到。所以,在
      WIN7 下整個(gè)獲取過(guò)程如下:



      1. void LaunchDefaultBrowser()  
      2. {  
      3.     HKEY hDefBrowserPos = NULL;  
      4.     wstring wstrDefBrowserPath = L"iexplore.exe";  
      5.   
      6.     WCHAR wszBuffer[MAX_PATH + 1] = {0};  
      7.     DWORD dwDataSize = sizeof(wszBuffer);  
      8.   
      9.     if (ERROR_SUCCESS == ::RegGetValueW(  
      10.         HKEY_CURRENT_USER,  
      11.         L"Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\Ftp\\UserChoice\\",  
      12.         L"Progid",  
      13.         RRF_RT_REG_SZ,  
      14.         0,  
      15.         wszBuffer,  
      16.         &dwDataSize  
      17.         ))  
      18.     {  
      19.         wstring wstrDefBrowserPos = wszBuffer;  
      20.         wstrDefBrowserPos += L"\\shell\\open\\command\\";  
      21.         dwDataSize = sizeof(wszBuffer);  
      22.   
      23.         if (ERROR_SUCCESS == ::RegGetValueW(  
      24.             HKEY_CLASSES_ROOT,  
      25.             wstrDefBrowserPos.c_str(),  
      26.             NULL,  
      27.             RRF_RT_REG_SZ,  
      28.             0,  
      29.             wszBuffer,  
      30.             &dwDataSize  
      31.             ))  
      32.         {  
      33.             // 解出 exe 路徑.  
      34.             wstrDefBrowserPath = wszBuffer;  
      35.             wstring::size_type leftQuotation = wstrDefBrowserPath.find(L'"');  
      36.             if (leftQuotation != wstring::npos)  
      37.             {  
      38.                 wstring::size_type rightQuotation = wstrDefBrowserPath.find(L'"', leftQuotation + 1);  
      39.                 if (rightQuotation != wstring::npos)  
      40.                 {  
      41.                     wstrDefBrowserPath.assign(  
      42.                         wstrDefBrowserPath.begin() + leftQuotation + 1,  
      43.                         wstrDefBrowserPath.begin() + rightQuotation  
      44.                         );  
      45.                 }  
      46.             }  
      47.         }  
      48.     }  
      49.   
      50.     ::ShellExecuteW(  
      51.         NULL,  
      52.         L"open",  
      53.         wstrDefBrowserPath.c_str(),  
      54.         NULL,  
      55.         NULL,  
      56.         SW_NORMAL  
      57.         );  
      58. }  






      整個(gè)過(guò)程比較繁瑣,但還是比較容易理解的。














        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多