得到IE地址栏内容的代码,为什么不好使?

来源:百度知道 编辑:UC知道 时间:2024/06/28 05:57:15
int main()
{
HWND hWorker,hRebar,hComEx,hcom,hEdit;
HWND hwndParent=::FindWindow(L"IEFrame",NULL);//找到最近的IE,要是找到某个IE需要枚举所有的IE过筛子
if(hwndParent == NULL)//没有IE运行中
return FALSE;
char szURL[260];
memset(szURL, 0, 260);
hWorker=FindWindowEx(hwndParent,0,L"WorkerA",NULL);//找到工作区
if(hWorker == NULL)//用户用NT
hWorker=FindWindowEx(hwndParent,0L,L"WorkerW",NULL);//WindowNT中的ie

hRebar=FindWindowEx(hWorker,0,L"ReBarWindow32",NULL);//找到Rebar

hComEx=FindWindowEx(hRebar,0,L"ComboBoxEx32",NULL);//找到Comboboxex
hcom=FindWindowEx(hComEx,0,L"ComboBox",NULL);//找到combobox

hEdit=FindWindowEx(hcom,0,L"Edit",NULL);//找到ComBoBox的edit控件句柄

::SendMessage(hEdit,WM_GETTEXT,260,(LPARAM) szURL);

AfxMessageBox((LPCTSTR)szURL);

在 98 下可能会好使, 目前 Windows 为了安全起见, 像 WM_GETTEXT 这类的消息的发送不能跨进程, 可以用线程注入的方式向目标进程注入你自己的一个 DLL, 再在 DLL 中发送这个消息.

自己想的吧!!!异想天开了哦!!
看看BHO吧!!!
就是BROWSER HELP OBJECT
用ATL写个COM,给IE用...随IE启动,这样能得到地址,
很久前顽的东西了
搜搜吧!