程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> vc++獲取當前使用IE的URL路徑並自動打印出相應的網址

vc++獲取當前使用IE的URL路徑並自動打印出相應的網址

編輯:關於VC++

這是關於獲取當IE所打開的URL地址(VC++),並且自動打印出相應的網址源代碼內容:

//將這個放入你的頭文件stdafx.h中
#import   <mshtml.tlb>
#import   <shdocvw.dll>
    
void   CGetIESrcDlg::GetRunningIESrc()  
{   
SHDocVw::IShellWindowsPtr   m_spSHWinds;  
CoInitialize(NULL);  
if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows))   ==   S_OK)  
{  
IDispatchPtr   spDisp;  
long   nCount   =   m_spSHWinds->GetCount();  
for   (long   i   =   0;   i   <   nCount;   i++)  
{  
_variant_t   va(i,   VT_I4);  
spDisp   =   m_spSHWinds->Item(va);  
SHDocVw::IWebBrowser2Ptr   spBrowser(spDisp);  
if   (spBrowser   !=   NULL)  
{  
IDispatchPtr   spDisp;  
if(spBrowser->get_Document(&spDisp)   ==   S_OK   &&   spDisp!=   0   )  
{  
MSHTML::IHTMLDocument2Ptr   spHtmlDocument(spDisp);  
MSHTML::IHTMLElementPtr   spHtmlElement;  
if(spHtmlDocument==NULL)  
continue;  
spHtmlDocument->get_body(&spHtmlElement);  
if(spHtmlDocument==NULL)  
continue;  
_bstr_t   str   ;  
str=spBrowser->GetLocationURL();//URL   of   IE   window();  
AfxMessageBox(str);  
MSHTML::IHTMLDocument3*   pHTMLDoc3;  
HRESULT   hr   =   spHtmlDocument->QueryInterface(__uuidof(MSHTML::IHTMLDocument3),(LPVOID*)&pHTMLDoc3);  
ASSERT(SUCCEEDED(hr));  
MSHTML::IHTMLElement*   pDocElem;  
hr   =   pHTMLDoc3->get_documentElement(&pDocElem);  
pHTMLDoc3->Release();  
ASSERT(SUCCEEDED(hr));  
BSTR   bstrHTML;  
pDocElem->get_outerHTML(&bstrHTML);  
pDocElem->Release();  
AfxMessageBox(CString(bstrHTML));  
SysFreeString(bstrHTML);  
}  
break;  
}  
}  
       
}  
else   {  
AfxMessageBox("Shell   Windows   interface   is   not   avilable");  
}  
CoUninitialize();  
}

說明:簡單遍歷了整個網頁的所有節點,找出容器當中的第一個頁面(多個IE頁面的第一頁),然後進行遍歷取出所有子節點並打印。大家可以測試一下,因為有時候網頁過大會出現假死現象,這段代碼本工作室測試的時候,可以使用,但用到IE7,IE8這樣多標簽頁的浏覽器裡要查到每一標簽頁的內容可能還需要改動一下,有興趣的朋友自己試試吧!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved