让应用程序从IE中获取键入的网址 (转)

本文介绍了一种方法,通过Windows API在Internet Explorer浏览器中获取当前输入的网址,用于实现网页访问控制的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

让应用程序从IE中获取键入的网址 (转)[@more@]

  前些时候,朋友想做一个小共享软件,软件的主要作用是阻止用户进入某些网站,他的设想是从IE的地址栏中获取键入的网址,如果这个网址非法的话,则不可以进入,代码如下:

 HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
  if(hwnd)
 {
   HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("Edit"),NULL);


 char sz[255];
 ::SendMessage(hwnd2,WM_GETTEXT,255,(LPARAM)sz);
 AfxMessageBox(sz);
 }

结果发现不能得到正确的结果,从SPY上看,类名也全部是正确的,为什么不能得到正确的结果呢?看了他的代码后,我进行了如下改动,就可以得到正确的结果了:

HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
 if(hwnd)
 {
 HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("WorkerW"),NULL);
 HWND hwnd3=::FindWindowEx(hwnd2,NULL,_T("ReBarWindow32"),NULL);
 HWND hwnd4=::FindWindowEx(hwnd3,NULL,_T("ComboBoxEx32"),NULL);
 HWND hwnd5=::FindWindowEx(hwnd4,NULL,_T("ComboBox"),NULL);
 HWND hwnd6=::FindWindowEx(hwnd5,NULL,_T("Edit"),NULL);

 char sz[255];
 ::SendMessage(hwnd6,WM_GETTEXT,255,(LPARAM)sz);
 AfxMessageBox(sz);
 }
}

  以上的代码不用我解释了吧,这个问题不是什么大问题,难度也不大,但是可能会让初学者不明白为什么得不到程序某一控件的HANDLE,其实对VC来说,没有什么办不到的事情,只是需要你仔细的分析一下而已。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992944/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-992944/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值