0

我的任务是在 IE 内的第三方 ActiveX 控件中记录所有用户操作。这些操作是在文本框中输入符号、单击按钮等。所以我创建了一个 BHO 并找到了一个具有给定 classid 的 IHTMLElement。解决此任务的下一步是什么?我使用 C#。

4

2 回答 2

0

正如 jeffamaphone 所说,Spy++ 能够捕获文本框的内容。为此,Spy++ 实际上是将自己的 DLL (spyxxhk.dll) 注入到 IE 中,以便能够检索控件的内容(这就是启动时请求管理权限的原因)。一旦注入 IE 进程,它就能够挂钩 IE 进程中存在的任何 DLL(也称为 ActiveX 控件)。

要执行相同类型的操作(捕获、记录等),您“只需”开发自己的注入引擎并注册它,以便在 IE 启动时自动启动。网络上有许多与这些注入机制相关的信息。这是一个开始的网址。

于 2012-05-24T08:52:54.273 回答
0

ActiveX 控件驻留在对象元素中。您可以使用 IE DOM api 来访问 Object 元素,但在该层之外它对您来说变得不透明。除非 ActiveX 控件本身公开了某种自动化,否则它就是本机代码黑盒。

在原生控件中有一些拦截点击和按键的方法,主要是使用子类化或钩子。您可以使用 spy++ 来检查窗口层次结构,并使用FindWindow的托管等效项来查找这些窗口。

于 2012-05-22T16:45:59.947 回答