收藏本站 
网站首页 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章
让应用程序从IE中获取键入的网址
[ 作者:ylfgraceylf    转贴自:网载    阅读次数:6    更新时间:2006-1-13 0:35:00   录入:蓝色动力 ]        

  前些时候,朋友想做一个小共享软件,软件的主要作用是阻止用户进入某些网站,他的设想是从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来说,没有什么办不到的事情,只是需要你仔细的分析一下而已。

上一篇:调试Release版本应用程序  下一篇: Com Introduction  

网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号