有没有可能用win32程序获取浏览器中网页的文本框控件的内容和焦点状态

来源:百度知道 编辑:UC知道 时间:2024/05/25 02:54:18
是这样,任何一种浏览器(先假定之有IE和FF)正在浏览的网页中,比如说有个username的输入框控件和password输入框控件,猜想中有一个后台程序,使用钩子或其他技术,获得输入框中的内容,以及获得它和其他输入框之间切换时的focus状态变化~这个我只是假想了一下,我现在都不知道这能不能实现,换句话说我是不是在空想~

请哪位大哥来告诉,这样的东西有可能实现吗,如果有,可否写下你的实现思路,如果你简要的写一下实现过程,小弟感激不尽~最后高分送上

可以!!!
首先要相信,只有你想不到,没有你做不到。VC博大精神。。。

现在就说一下我的思路:

1、首先要远程注入,因为这是跨进程的访问数据,因此,如果不注入的话,是很难从一个进程直接访问另一个进程的空间的,因为每个进程都有自己私有的4G空间。注入的方法很多,不说了。
2、枚举所有的浏览器子窗口。EnumChildWindow
3、监测枚举到的子窗口,获得其注册名字(classname),由此判断是不是一个Edit控件。如果是一个edit控件,则获得它的风格,如果有PASSWORD风格,则说明是一个密码输入框。
4、使用SendMessage( WM_GETTEXT )等函数获得Edit框中的文本。
5、搞定。

另外,至于要判断是不是处于焦点,更简单了。
使用上面第3步得到的Edit句柄,去判断GetFocus()是不是相等。就知道了。

还有,第一步非常重要,否则,余下的都不能实现。

没有

难就一个字。

兄弟,要能实现这网络就都乱了。

如果是IE的话是可以实现的,FF的话就不知道了。
请参看我在此帖的回答:
http://zhidao.baidu.com/question/89453758.html

嗯,差不多算空想。有的东西似是而非,太多的新技术了。除非你有精力把主流浏览器都研究透彻,然后针对每个浏览器写套处理程序,然后自己识别并调用相应的处理程序。不过每个浏览器版本升级恐怕你又要忙一阵子。

可以的,获得当前浏览器的文档,

void CSendMsgDlg::OnDownloadCompleteExplorer()
{
// TODO: Add your control notification handle