Мониторинг действий пользователя в элементах управления ActiveX внутри IE

У меня есть задача регистрировать все действия пользователя в сторонних элементах управления ActiveX внутри IE. Действия включают ввод символов в текстовые поля, нажатие кнопок и т. д. Итак, я создал BHO и нашел IHTMLElement с заданным classid. Каковы следующие шаги для решения этой задачи? Я использую С#.


person Vadim    schedule 21.05.2012    source источник


Ответы (2)


Элементы управления ActiveX размещаются в элементах Object. Вы можете использовать API IE DOM, чтобы добраться до элемента Object, но за пределами этого слоя он становится для вас непрозрачным. Если сам элемент управления ActiveX не предоставляет какую-либо автоматизацию, он представляет собой черный ящик собственного кода.

Существуют способы перехвата щелчков и нажатий клавиш в собственных элементах управления, в основном с использованием подклассов или перехватчиков. Вы можете использовать spy++ для проверки иерархии окон и поиска этих окон с помощью любого управляемого эквивалента FindWindow.

person i_am_jorf    schedule 22.05.2012

Как сказал jeffamaphone, Spy++ способен захватывать содержимое текстовых полей. Для этого Spy++ фактически внедряет свою собственную DLL (spyxxhk.dll) в IE, чтобы иметь возможность извлекать содержимое элементов управления (по этой причине при запуске запрашивает разрешение администратора). После внедрения в процесс IE он способен перехватить любую DLL (также известную как элементы управления ActiveX), присутствующую в процессе IE.

Для выполнения однотипных действий (захват, ведение журнала и т. д.) вам «просто» нужно разработать собственный механизм впрыска и зарегистрировать его, чтобы он автоматически запускался при запуске IE. В Интернете есть много информации, связанной с этими механизмами инъекций. Вот URL для начала.

person mox    schedule 24.05.2012