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

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有