如何获取程序嵌入的网页链接的地址

疯狂-的-蜗牛 2014-04-13 01:00:17
如题,很多应用程序里面嵌入了一个Internet Explorer_Server,如何获取到这个网页链接的地址呢?
...全文
353 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂-的-蜗牛 2014-04-19
  • 打赏
  • 举报
回复
试了下,可行 谢谢了
oyljerry 2014-04-13
  • 打赏
  • 举报
回复
获取控件句柄后,调用get_URL
Yofoo 2014-04-13
  • 打赏
  • 举报
回复
网上有例子, 搜获取网页源码, 取这个地址也是一样的, 很久以前就有的, 不知对现在系统是否可以 先取到这个窗体的句柄, 然后用这个句柄取到IHTMLDocument2, 然后 IHTMLDocument2.get_URL 主要部分过程

BOOL	NScript::GetHtmlDocFromWnd(HWND hWnd, IHTMLDocument2 **ppHtmlDoc)
{
	CComQIPtr<IHTMLDocument>		HtmlDoc;
	CComQIPtr<IDispatch>			HtmlDispath;
	CComQIPtr<IHTMLWindow2>			HtmlWin2;
	LPFNOBJECTFROMLRESULT			fnObjectFromLresult;
	UINT			uMessage;
	DWORD_PTR		dwRetVal;
	HRESULT			hr;

	CoInitialize(NULL);
	*ppHtmlDoc = NULL;
	fnObjectFromLresult = (LPFNOBJECTFROMLRESULT)NSys::GetDllProcAdders("OLEACC.DLL", "ObjectFromLresult");
	if(fnObjectFromLresult == NULL)
		return FALSE;

	uMessage = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
	::SendMessageTimeout(hWnd, uMessage, 0L, 0L, SMTO_ABORTIFHUNG, 1000, &dwRetVal);
	hr = fnObjectFromLresult((LRESULT)dwRetVal, IID_IHTMLDocument, 0, (void**)&HtmlDoc);
	if(FAILED(hr) || HtmlDoc == NULL)
		return FALSE;

	hr = HtmlDoc->get_Script(&HtmlDispath);
	if(FAILED(hr) || HtmlDispath == NULL)
		return FALSE;

	HtmlWin2 = HtmlDispath;
	if(HtmlWin2 == NULL)
		return FALSE;
	hr = HtmlWin2->get_document(ppHtmlDoc);
	if(FAILED(hr))
		return FALSE;

	return TRUE;
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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