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

worldblog發表於2007-12-06
在VC6.0中呼叫瀏覽器訪問WEB頁面 (轉)[@more@]

在VC6.0中訪問頁面 作者:小輝


一、前 言

  不少作品都在其[幫助]選單中加入了[訪問我們的主頁……]之類的功能,小輝對此頗感興趣,查了一些關於它的實現方法,總覺得過於複雜。小輝在設計《小輝桌面王——酒井法子寫真集系列》的時候,成功地在中實現了[訪問小輝的主頁……]的功能(右圖中的第四個按鈕),程式碼段非常簡潔,現在有關設定思想和實現程式碼附後。《小輝桌面王——酒井法子寫真集》是小輝寫的一個,感興趣的讀者可以從這裡/Desktop/Code/XHDesk_code.zip">(498KB)。

二、設計思想

  小輝的實現方法是:首先,透過讀取登錄檔,取得Windows預設瀏覽器的路徑名,然後帶引數預設瀏覽器,所帶的引數即所要呼叫的主頁地址。——說穿了其實很簡單的。
  Windows預設瀏覽器的鍵值在登錄檔中的存放目錄是‘HKEY_CLASSES_htmlfileopencommand’。
  實現程式碼如下:

三、程式碼設計

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

  //開啟登錄檔根關鍵字
  if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hkRoot)==ERROR_SUCCESS)
  {
  //開啟子關鍵字
  if(RegOpenKeyEx(hkRoot,
  "htmlfileshellopencommand",
  0,
  KEY_ALL_ACCESS,
  &hSubKey)==ERROR_SUCCESS)
  {
  //讀取登錄檔,獲取預設瀏覽器的命令列  
  RegEnumValue(hSubKey,
  0,
  ValueName,
  &cbValueName,
  NULL,
  &dwType,
  DataValue,
  &cbDataValue);
  // 呼叫引數(主頁地址)賦值
  strcpy(ShellChar,(char *)DataValue);
  strcat(ShellChar," ~xiaohui");
  // 啟動瀏覽器
  WinExec(ShellChar,SW_SHOW);

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988861/,如需轉載,請註明出處,否則將追究法律責任。

相關文章