我在Windows窗体应用程序中嵌入了Internet Explorer浏览器,并且无法修改此窗体的源代码。但是,我已经获得了IE窗口的句柄,并且可以执行各种SendInput功能。如果我单击一个控件,我如何判断它是否是一个TextBox,然后我如何向该TextBox发送字符?
我需要使用到IE窗口的句柄的答案,我已经为我的其他功能获得了该窗口。我需要的答案必须包含IE窗口的句柄。
发布于 2009-03-18 12:06:16
你不能。IExplore上的控件不再是窗口控件-它们是由IExplore呈现的自定义实体,只是看起来与实际的窗口控件相似。
与网页上的控件交互的唯一方式是通过访问internet explorer窗口的activeX控件,向其请求IID_IWebBrowser2,并从该点导航文档对象模型命名空间。
如果您所说的“不具有修改此表单的源代码的能力”意味着您的代码在一个完全不同的进程中运行,那么您就有了一个非常非常大的问题。如果您处于相同的进程中,则很有可能WinForms有一个应用程序接口,您可以使用它来强制访问其宿主的任何activex控件。
考虑到你对这类开发语言的次优选择-- c# --我不能给出任何关于与activex控件的互操作会有多简单或多可能的建议。
发布于 2011-06-15 23:00:39
http://watin.org/为你提供了许多访问web浏览器的可能性--不知道这是否包括嵌入到其他应用程序中的浏览器。
无论哪种方式,你都可以在那里获得更多关于如何“自动化”浏览器窗口的信息。
https://stackoverflow.com/questions/650709
复制相似问题