想用hook,在IE打开某个网页的时候,取回URL。怎么办?

fooykid 2003-10-19 08:27:57
谢谢!
...全文
55 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
syl5005 2003-11-03
  • 打赏
  • 举报
回复
go up
go up
go to up
go to up
这个东西实在太好用了。
大家都狂顶吧。
chxinheifeng 2003-11-03
  • 打赏
  • 举报
回复
to: NopnoP(Win32ASM) ( ) 信誉:100 2003-11-02 22:58:00 得分:0
我也要一份,谢谢
chxinheifeng@163.com
暗黑帝国 2003-11-03
  • 打赏
  • 举报
回复
学习!
麻烦也给我一份!谢谢!cheeralen@163.com
coolali 2003-11-03
  • 打赏
  • 举报
回复
to Nopnop(Win32ASM)
我对这一方面也十分有兴趣,麻烦你给我一份,谢啦!
rainlee_baby@sohu.com
coolali 2003-11-03
  • 打赏
  • 举报
回复
如果使用BHO来实现,可以达到目的,具体可以参见:

http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=724

但在编译时Debug能够成功,但是release不能成功,我不知时不时需要一些lib文件要连接,如果哪位大虾知道不妨说一声,谢啦!
NopnoP 2003-11-02
  • 打赏
  • 举报
回复
刚好最近在公司里做了这样的小东西,需要的话可以把代码给你。
fooykid 2003-10-20
  • 打赏
  • 举报
回复
microran2000兄,麻烦看一下我下面说的是否正确。
当我们在网页中,用鼠标左键点击链接的时候,是由系统扑获这样一个消息,然后调用IE去打开这个URL?
如果是这样的话,我想当系统调用IE去打开这个URL之前,先将这个消息扑获?不知道是否由这样一个函数?

麻烦了!
microran2000 2003-10-20
  • 打赏
  • 举报
回复
Google侵权,限期整改网页.估计一时半会上不去
NowCan 2003-10-20
  • 打赏
  • 举报
回复
google登不上去?
zhaoweidf 2003-10-20
  • 打赏
  • 举报
回复
学习
microran2000 2003-10-20
  • 打赏
  • 举报
回复
基于网页的元素消息传递,并不是按照传统的Windows消息驱动来实现的,即便是这样,微软在实现这种DHTML机制的同时隐藏了实现的细节.
微软在BHO实现机制中通过插件和事件连接点机制实现了用户代码的回调,只要你编写的组件实现了BHO,就可以拦截这些事件,执行你提供的事件代码.BHO相当于网页中"钩子".
如果你只是对网页中的网址感兴趣,也可以不采用BHO,比如可以采用多线程.
下面的代码可供参考.

In C++, a connection can be accomplished in roughly the same way. Visual C++ Native Com Support is used here for the sake of brevity.

Add references to Shdocvw.dll and Mshtml.dll to the project:
#import <mshtml.dll> // Internet Explorer 4.0x
#import <mshtml.tlb> // Internet Explorer 5
#import <shdocvw.dll>
Declare an instance of an IShellWindows pointer in your view class:
SHDocVw::IShellWindowsPtr m_spSHWinds;
Create an instance of a ShellWindows object in your view's constructor:
m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));
Use the ShellWindows object in your view's OnInitialUpdate function:
void CConnectIEView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();

ASSERT(m_spSHWinds != NULL);

CString strCount;
long nCount = m_spSHWinds->GetCount();

strCount.Format("%i", nCount);
m_strWinCount = strCount;

UpdateData(FALSE);

IDispatchPtr spDisp;
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)
{
m_ctlListLoc.AddString(spBrowser->GetLocationName());

MSHTML::IHTMLDocument2Ptr spDoc(spBrowser->GetDocument());
if (spDoc != NULL)
{
m_ctlListTitle.AddString(spDoc->Gettitle());
}
}
}
}

microran2000 2003-10-19
  • 打赏
  • 举报
回复
用google 或者msdn搜索C++ Browser Help Object会得到大量这方面的源代码

15,471

社区成员

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

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