在VC6.0中呼叫瀏覽器訪問WEB頁面

來源:互聯網
上載者:User

在VC6.0中呼叫瀏覽器訪問WEB頁面 作者:小輝

一、前 言

  不少軟體作品都在其[協助]菜單中加入了[訪問我們的首頁……]之類的功能,小輝對此頗感興趣,查了一些關於它的實現方法,總覺得過於複雜。小輝在設計《小輝案頭王——酒井法子寫真集系列》的時候,成功地在程式中實現了[訪問小輝的首頁……]的功能(右圖中的第四個按鈕),程式碼片段非常簡潔,現在有關設定思想和實現代碼附後。《小輝案頭王——酒井法子寫真集》是小輝寫的一個小工具,感興趣的讀者可以從這裡下載原始碼(498KB)。

二、設計思想

  小輝的實現方法是:首先,通過讀取註冊表,取得Windows預設瀏覽器的路徑名,然後帶參數執行預設瀏覽器,所帶的參數即所要調用的首頁地址。——說穿了其實很簡單的。
  Windows預設瀏覽器的索引值在註冊表中的存放目錄是‘HKEY_CLASSES_ROOT/htmlfile/shell/open/command’。
  實現代碼如下:

三、代碼設計

void CXHDeskDlg::OnBtnWeb()
{
    HKEY hkRoot,hSubKey; //定義註冊表根關鍵字及子關鍵字
    char ValueName[256];
    unsigned char DataValue[256];
    unsigned long cbValueName=256;
    unsigned long cbDataValue=256;
    char ShellChar[256]; //定義命令列
    DWORD dwType;

    //開啟註冊表根關鍵字
    if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hkRoot)==ERROR_SUCCESS)
    {
    //開啟子關鍵字
        if(RegOpenKeyEx(hkRoot,
        "htmlfile//shell//open//command",
                    0,
                    KEY_ALL_ACCESS,
                    &hSubKey)==ERROR_SUCCESS)
        {
            //讀取註冊表,擷取預設瀏覽器的命令列    
            RegEnumValue(hSubKey,
                0,
                        ValueName,
                        &cbValueName,
                        NULL,
                        &dwType,
                        DataValue,
                        &cbDataValue);
            // 調用參數(首頁地址)賦值
            strcpy(ShellChar,(char *)DataValue);
            strcat(ShellChar," www.neaase.net/~xiaohui");
            // 啟動瀏覽器
            WinExec(ShellChar,SW_SHOW);

        }
        else
            MessageBox("WEB瀏覽器開啟錯誤!","錯誤",MB_OK);
    }
    else
        MessageBox("WEB瀏覽器開啟錯誤!","錯誤",MB_OK);
    //關閉註冊表
    RegCloseKey(hSubKey);
    RegCloseKey(hkRoot);
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.