Давайте придумаем решение вот такой-вот простенькой задачи. **Имеется**: браузер (IE, Chrome или Firefox), уже запущенный пользователем. **Требуется**: написать программу, которая получит URL, который в данный момент введён в адресной строке. Давайте подумаем, каким образом эту простенькую задачу решить НЕ получится: **1\.** FindWindow + GetWindowText
**2\.** Браузерное расширение, которое отдаст URL нашей программе (например, через запрос к localhost)
**3\.** Давайте напишем сниффер и посмотрим что там пользователь открывал
**4\.** Давайте воспользуемся [Remote Debugging Protocol][1] ну или каким-нибудь Selenium-ом
**5\.** Может быть, [хуки][2]?
**6\.** Скриншот окна браузера, определение положения адресной строки, распознавание текста с картинки!
**7\.** Ваш вариант А напишите в комментариях, какие ещё решения вам приходят в голову и мы подумаем, получится или нет. А теперь один из правильных ответов: мы воспользуемся уже старенькой, но весьма стабильной и поддерживаемой всеми браузерами во всех ОС с Win95 до Win10 технологией [Microsoft Active Accessibility][3], которая даст нам возможность не только получить текущий URL (при чём одинаковым образом для всех браузеров), но и вообще дать доступ ко всему контенту браузера — от самого родительского окна с его заголовком, меню, тулбаром, вкладками и до содержимого открытой веб-страницы вплоть до самого последнего её элемента. [Читать дальше →][4]
[1]:
http://habrahabr.ru/company/infopulse/blog/217121/
[2]:
http://habrahabr.ru/company/infopulse/blog/140456/
[3]:
https://ru.wikipedia.org/wiki/Microsoft_Active_Accessibility
[4]:
http://habrahabr.ru/post/253729/#habracut