首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请教,为何无法使用PostMessage向IE发WM_KEYDOWN消息

2012-02-03 
请问,为何无法使用PostMessage向IE发WM_KEYDOWN消息?由于网络极度不稳定,我尝试编写了一个小程序,希望当IE

请问,为何无法使用PostMessage向IE发WM_KEYDOWN消息?
由于网络极度不稳定,我尝试编写了一个小程序,希望当IE无法打开网页时自动重新刷新该页面。主要代码如下:

HWND   hwnd_IE=FindWindow(_T( "IEFrame "),_T( "找不到服务器   -   Microsoft   nternet   Explorer "));
PostMessage(hwnd_IE,WM_KEYDOWN,VK_F5,0);

可是无法进行刷新页面。
同样,诸如VK_F1(显示帮助信息也无法执行)。

然而使用:
PostMessage(hwnd_IE,WM_CLOSE,0,0);
确可以把IE窗口给关闭掉——这不是意味着IE依然可以接受处理消息。

同样的方法,如果是记事本程序的句柄操作,则都能够正确执行。
请问大家有没有遇到过?有无解决办法?
当然,如果有只要能够解决网页出错时可以刷新的其它更好的方法,也请教教小弟,在此谢谢了。


[解决办法]
就算楼主让ie响应了F5键的消息,估计也不能满足你的要求。
你可以试验一下,就手动的多F5几下,如果当时真的网络不好,那大概刷3-5次以后,ie就永远是提示找不到服务器,都不去连接了。
[解决办法]
HWND hwnd_IE=FindWindow(_T( "IEFrame "),_T( "找不到服务器 - Microsoft nternet Explorer "));
::SetForegroundWindow(hwnd_IE);
PostMessage(hwnd_IE,WM_KEYDOWN,VK_F5,0);

The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed.

或者想其他的办法,只要能让这个窗口得到输入焦点即可
[解决办法]
如果那样的话,可以发送ctrl+f5消息试试看
[解决办法]
操纵IE最好通过自动化接口来进行。
[解决办法]
Mackz(在相互) 说的没错。
[解决办法]
首先,发送消息,不是好的解决方法。通常使用COM接口。
第二点,如果IE提示你找不到服务器,F5不好使。IE不会真的再试了。需要使用地址栏右边那个转到按钮。才好使。
[解决办法]
通过接口是正道

热点排行