怎样获取IE地址栏中的按键事件?

随风飞扬向天去 2006-05-15 04:56:55
最近要写一个IE插件,不知道怎样获得IE地址栏中用户输入的字符串(在IE还没导航到这个字符串所指向的网址,所以不能用IWebBrower2::get_LocationURL()函数),希望哪位大侠给个方法?
...全文
221 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lion_wing 2006-05-17
  • 打赏
  • 举报
回复
用BHO得到地址栏的HWND,然后子类化,就能收到用户用地址栏的任何操作。
  • 打赏
  • 举报
回复
我再说一下:我的意思是得到用户在地址栏中输入的字符串。
  • 打赏
  • 举报
回复
谢谢各位啦,经过考虑,我自己创建了一个编辑框来实现所需的功能。
ollydbg(Ollydbg)兄台:HRESULT CMySink::Invoke()是怎么来的?我不大明白,请多多指教。

wildmen(http://onewildchild.blogcn.com)兄台:我的邮箱是:johnsmithcry@163.com
jacklzw88 2006-05-16
  • 打赏
  • 举报
回复
可以用钩子,不过其实如果你要得到url的话思路可以换一个
lion_wing 2006-05-16
  • 打赏
  • 举报
回复
子类化SUBCLASS
wildmen 2006-05-16
  • 打赏
  • 举报
回复
我刚完成一个类似的功能. 用 BHO 方法.
你把邮件给我,我给你代码和文档.
「已注销」 2006-05-16
  • 打赏
  • 举报
回复
sink住DWebBrowserEvents2,然后即可


HRESULT CMySink::Invoke(DISPID dispidMember,REFIID riid,LCID lcid,WORD wFlags,
DISPPARAMS* pDispParams,VARIANT* pvarResult,EXCEPINFO* pExcepInfo,UINT* puArgErr)
{

USES_CONVERSION;

switch(dispidMember)
{
case DISPID_BEFORENAVIGATE2: // hyperlink clicked on
{
CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
varURL.ChangeType(VT_BSTR);

sprintf(m_buf,"打开新链接 %s ",(char *)OLE2T(varURL.bstrVal));//这里即可知道URL

}
break;
}

3,245

社区成员

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

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