如何从一个可执行程序刷新一个已知IE浏览器窗口?

kongyunzhongque 2003-08-14 05:09:43
本人的一些实现如下(这段代码大部分都是copy来的只在中间加了一些我想要的实现语句,没想到一直没有成功):
CWnd* pWnd=AfxGetMainWnd () ->GetWindow (GW_HWNDFIRST);

while (pWnd)

{

// window visible, has a caption, and does not have an owner?

if (pWnd ->IsWindowVisible () &&

pWnd ->GetWindowTextLength () &&! pWnd ->GetOwner ())

{



pWnd ->GetWindowText (strCaption);
//与我想要的IE浏览器窗口TITLE匹配
if(strCaption.Find("CSDN")>=0)
{
// pWnd->SetActiveWindow();
// pWnd->BringWindowToTop();
// pWnd->SetFocus();
pWnd->SendMessage(WM_KEYDOWN,VK_F5,1);
pWnd->SendMessage(WM_HOTKEY,IDHOT_SNAPWINDOW,VK_F5);
// pWnd->UpdateWindow();


}
}

//Get next window in window list.

pWnd=pWnd->GetWindow (GW_HWNDNEXT);

}
结果我发送的消息没有反应。忙了几天没有结果!头都大了!
...全文
32 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kingzai 2003-08-19
How can I get IWebBrowser2 interface if I know only HWND for running IE
process.
I found some MS information
HOWTO: Connect to a Running Instance of Internet Explorer
(http://support.microsoft.com/support/kb/articles/Q176/7/92.ASP)

回复
kongyunzhongque 2003-08-19
to: kingzai(kingzai)
可是我不知道如何得到IWebBrowser2 pointer,麻烦你再详细点,好吗?(我不会com)
回复
cjwn 2003-08-19
http://www.vckbase.com/document/viewdoc.asp?id=282
有源代码.好用给分.谢谢
回复
kingzai 2003-08-15
from IE window you can get IWebBrowser2 point first, then call
IWebBrowser2::Refresh
回复
kongyunzhongque 2003-08-15
第一次用SPY++.看到的消息是message:0x0591[User_definded:WM_USER+401]wParam:00000000 lParam:000000
于是我加了条语句:
pWnd->SendMessage(WM_USER+401,0,0);

结果还是不行。
回复
ketao_78 2003-08-15
是啊
回复
shilong 2003-08-15
你先用spy++检查在浏览中按F5,浏览器收到了什么消息...
再在程序里模拟这个消息....
pWnd->SendMessage(WM_KEYDOWN,VK_F5,1);
很可能参数不对,也很可能IE中不是这个窗口接收按键消息,
也有可能是WM_KEYUP才能响应等等
回复
发帖
资源
创建于2007-09-28

2579

社区成员

VC/MFC 资源
申请成为版主
帖子事件
创建了帖子
2003-08-14 05:09
社区公告
暂无公告