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

fangxu1999 2007-09-24 08:10:04
由于网络极度不稳定,我尝试编写了一个小程序,希望当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依然可以接受处理消息。

同样的方法,如果是记事本程序的句柄操作,则都能够正确执行。
请问大家有没有遇到过?有无解决办法?
当然,如果有只要能够解决网页出错时可以刷新的其它更好的方法,也请教教小弟,在此谢谢了。
...全文
349 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbs2018 2011-12-06
  • 打赏
  • 举报
回复
WM_KeyDown
fangxu1999 2007-09-25
  • 打赏
  • 举报
回复
谢谢大家
特别是jimoguilai()
yooono 2007-09-25
  • 打赏
  • 举报
回复
通过接口是正道
JohnWoo 2007-09-24
  • 打赏
  • 举报
回复
首先,发送消息,不是好的解决方法。通常使用COM接口。
第二点,如果IE提示你找不到服务器,F5不好使。IE不会真的再试了。需要使用地址栏右边那个转到按钮。才好使。
manbaum 2007-09-24
  • 打赏
  • 举报
回复
Mackz(在相互) 说的没错。
菜牛 2007-09-24
  • 打赏
  • 举报
回复
操纵IE最好通过自动化接口来进行。
Chivalry 2007-09-24
  • 打赏
  • 举报
回复
如果那样的话,可以发送ctrl+f5消息试试看
Chivalry 2007-09-24
  • 打赏
  • 举报
回复
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.

或者想其他的办法,只要能让这个窗口得到输入焦点即可
manbaum 2007-09-24
  • 打赏
  • 举报
回复
就算楼主让ie响应了F5键的消息,估计也不能满足你的要求。
你可以试验一下,就手动的多F5几下,如果当时真的网络不好,那大概刷3-5次以后,ie就永远是提示找不到服务器,都不去连接了。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧