到底有没有方法,我找MSDN都两天了!

iearthshine 2000-12-25 04:22:00
主  题:VC的菜问题,找个API
作  者:Cloudyshadow
所属论坛:Visual C++
问题点数:50
回复次数:6
人气指数:105
发表时间:2000-12-24 21:24:00

我想写一个程序,首先启动一个程序,设定一个定时器,然后,切换到另一个窗口,比方说IE,假如IE中分三个Frame,我想自动控制其中一个页面的编辑框,<input>,同时改变其中的值,现在我用GetFroegroundWindow得到IE的hwnd,然后我想通过focus得到那个编辑框的句柄,怎么办,苦恼。。。

转移贴子到 Visual C++ Visual Basic Delphi C/C++ C++ Builder ASM 数据库开发 PowerBuilder ActiveX/COM 数据算法 软件工程 图形/游戏/多媒体 安全技术 网络/通讯 技术书籍 文件格式 C# XML 主页制作 图形处理 ASP PHP Perl Java Javascript JSP 软件使用 资源使用 软件注册 我看软件 寻找软件 行业软件 软件评测 Windows 95/98 Windows NT/2000 DOS Linux/Unix 硬件指南 程序人生 软件市场 程序员考试 人才热线 建议和意见 灌水乐园 走向海外 | 贴子加分 | 密码:


回复贴子:
vrman回复于2000-12-24 22:28:00
IE窗口中的编辑框是根本没有窗口句柄的。IE只不过把它画在自己的窗口中而已,所有的消息派发与解释都由IE窗口自己进行。
rchu回复于2000-12-24 22:46:00
如同上面那位老兄说的,ie这一点很讨厌
但是可以试试发送键盘消息
bigjim回复于2000-12-24 23:51:00
呵呵,我可是试验过的,没有调查没有发言权。我可以编程在IE中输入www.sohu.com,回车!
方法是这样的,先查找一个类名为IE_FRAME(名字不记得了,用spy++看看吧),然后列举它的子窗口,如果有一个类名为EDIT,向他发消息即可。
sxbyl回复于2000-12-25 8:26:00
To:bigjim 得到那个地址栏当然是个很容易,但得到页面里的编辑框就困难了,不信你再调查调查。我的一个想法是新打开一个页面后,发送Tab键消息,Tab键消息的个数硬编码到程序中,你可以试一下,有了结果说一声。
NiceFeather回复于2000-12-25 9:53:00
to bigjim:
你说的方法比较有趣,值得探讨!你说的方法是想通过探测类名的方法得到EDIT窗口,如果那个页面只有1个EDIT则可以按你说的方法。但是,假如那个页面有N个EDIT,而我只想要其中特定的一个,并发送消息,怎么办?
这个问题我以前做过试验,当有N个EDIT时,所有EDIT将接收到你发送的消息!

希望能与大家继续探讨这个问题!
Cloudyshadow回复于2000-12-25 14:33:00
我的想法是通过carot,那个插入符号,通过GetCaretPos(point),然后用WindowFromPoint得到窗口的句柄,但是好像编辑框没有句柄的感觉,考虑发消息,但是没有句柄怎么办,我还是希望通过Caret来定位编辑框,大家接着想一想!
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
flywhc 2000-12-25
  • 打赏
  • 举报
回复
做屏幕取词的时候记得,IE4以后的窗口很怪,SELECT元素是有HWND的,而INPUT根本不是窗口,只是个DC而已,HWND好象跟其他地方一样。
如果你非要这样做,需要做个类金山词霸屏幕取词程序,在ExtTextoutW里改其中的pszText。
但不知道会有什么后果....不过把你想要的显示出来肯定是可以了,可能不能做到自动填表。

用COM的方法不知道想过没有。如果能得到那个IE的接口,IWebBrowser.Document.All就是元素集合,然后IWebBrowser.Document.元素名称.Value=你想要的值 就可以改变了。

假如是自己编的浏览器那非常容易了,“自动填表”很容易实现。
gameboy999 2000-12-25
  • 打赏
  • 举报
回复
通过Caret确实可以知道编辑窗口在哪,但是在ie中,所有内容都是通过扩展而来的,
所以那个编辑框根本就得不到句柄,这点可以从我做的刷屏机得以验证。
所以用windowfrompoint是得不到结果的。

iearthshine 2000-12-25
  • 打赏
  • 举报
回复
我的想法是通过carot,那个插入符号,通过GetCaretPos(point),然后用WindowFromPoint得到窗口的句柄,但是好像编辑框没有句柄的感觉,考虑发消息,但是没有句柄怎么办,我还是希望通过Caret来定位编辑框,大家接着想一想!

16,473

社区成员

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

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

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