如何从浏览器中提取url

bofrobber 2010-03-15 11:22:40
我开放一个IE插件,想提取url,请问除了从底层获得socket的请求(如detour,sniffer等)外,还有别的方法么。
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bofrobber 2010-03-16
  • 打赏
  • 举报
回复
问题提错了
我是想知道http消息
虽然答案没有什么样。
不过,还是很感谢你们的回复。
算了还是结贴吧
SullenSun 2010-03-15
  • 打赏
  • 举报
回复
SHDocVw::IShellWindowsPtr m_spSHWinds;
//CComPtr<IDispatch> spDispatch;
//CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
//CComPtr<IHTMLElement> pElement;
//CComPtr<IHTMLElementCollection> pElementCol;
//CComPtr<IHTMLFormElement> pFormElement;
//CComPtr<IHTMLInputTextElement> pInputElement;
IWebBrowser2 * pWebBrowser = NULL;
//创建ShellWindows实例
if (m_spSHWinds == NULL)
{
if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)
{
AfxMessageBox(L"Failed");
CoUninitialize();
//return NULL;
}
}

if (m_spSHWinds)
{
// 取得浏览器实例个数
int n = m_spSHWinds->GetCount();
for (int i = 0; i < n; i++)
{
_variant_t v = (long)i;
IDispatchPtr spDisp = m_spSHWinds->Item(v);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); //生成一个IE窗口的智能指针
//SHDocVw::IWebBrowser2Ptr与IWebBrowser2是不一样的
//SHDocVw::IWebBrowser2Ptr是经过COM封装的,所以在此判断一下
//否则QueryInterface 会出错的。
if (spBrowser!=NULL)
{
HRESULT hr = spDisp.QueryInterface(IID_IWebBrowser2, &pWebBrowser);
if (SUCCEEDED(hr))
{
if (pWebBrowser !=NULL)
{
//return pWebBrowser;
//CString str;
//str.Format(L"%d",i);
//AfxMessageBox(str);
///_variant_t vtUrl="www.csdn.net";
//_variant_t vEmputy;
//pWebBrowser->Navigate2(&vtUrl,&vEmputy,&vEmputy,&vEmputy,&vEmputy);
CComBSTR cBstr;
pWebBrowser->get_LocationURL(&cBstr);
USES_CONVERSION;
CString str = (TCHAR*)cBstr.m_str;
AfxMessageBox(str);
}
}

}
}
}


}
xyq1986 2010-03-15
  • 打赏
  • 举报
回复
case DISPID_BEFORENAVIGATE2:
{
LPOLESTR lpURL = NULL;
mWebBrowser2->get_LocationURL(&lpURL);
char * strurl;
if (pDispParams->cArgs >= 5 && pDispParams->rgvarg[5].vt == (VT_BYREF|VT_VARIANT))
{
CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
varURL.ChangeType(VT_BSTR);
strurl = OLE2A(varURL.bstrVal);
}
if (strstr(strurl, "girl.com"))
{
*pDispParams->rgvarg[0].pboolVal = TRUE;
::MessageBox(NULL, _T("该网页已被禁止!"),_T("Warning"),MB_ICONSTOP);
return S_OK;
}
break;
}

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧