Если вы выполняете только очистку и запросы, вам, вероятно, лучше всего использовать объект WebRequest
, который поставляется с .NET для вашей работы.
Класс WebRequest @ MSDN
Однако, если вам нужен точный доступ к тому, что представлено в IE DOM, вы должны использовать Microsoft Active Accessibility для получения доступа. При условии, что вы можете идентифицировать дескриптор окна или надежное местоположение для целевого окна IE, и это видно в сеансе пользователя, Active Accessibility - лучший способ получить доступ к целевому окну IE и копаться в DOM. Не обязательно использовать C ++, но, вероятно, будет проще сделать это в C ++.
Службы пользовательского интерфейса Active Accessibility @ MSDN
Вы захотите использовать EnumChildWindows для определения местоположения (или запроса методом грубой силы) окна DOM либо с рабочего стола, либо с помощью дескриптора окна фрейма, полученного из процессов перечисления. В .NET перечисление процессов доступно из класса System.Process.
EnumChildWindows @ MSDN
EnumWindows signature @ pinvoke.net
EnumChildWindows signature @ pinvoke.net
Process.GetProcesses () @ MSDN
Process.MainWindowHandle @ MSDN
Чтобы добавить объявления типов, вам нужно иметь возможность обходить DOM в C # и общаться с MSAA, добавить ссылку COM в «Библиотеку объектов Microsoft HTML» в свой проект и добавить сигнатуры P / Invoke для MSAA.
AccessibleObjectFromWindow Signature @ pinvoke.net
Как только вы сможете вызвать MSAA, получите IDispatch через Active Accessibility из дескриптора окна. Вы захотите отправить OBJID_NATIVEOM
, что даст вам IDispatch
, который вы можете опросить.
Получение объекта IAccessible @ MSDN
AccessibleObjectFromWindow () @ MSDN
Отсюда IDispatch
может быть приведен к IHTMLWindow2
или IHTMLDocument2
(и производным), который имеет все методы модели сценария DOM и другие. К сожалению, я не могу вспомнить, какой из них возвращается с помощью этого метода, но в любом случае IHTMLWindow2
имеет свойство document
(аналогично window.document
в скрипте). Любой из них может быть разрешен для предоставления доступа к DOM, который представлен IHTMLDocument2
и всеми производными интерфейсами.