"Chrome legacy Window" при запуске хром с RunAs

Я пытаюсь использовать MSAA (на Win7), чтобы получить адресную строку в браузере Chrome и заменить его другим URL-адресом. Когда chrome запускается нормально (как пользователь loggedon), я могу найти адресную панель с помощью интерфейса IAccessible, пройдя через дерево пользовательского интерфейса классов окон, принадлежащих процессу. Однако, если я запускаю хром в качестве другого пользователя (используя RunAs в окнах), я вижу окно с именем "хромированное окно" при просмотре классов, принадлежащих процессу "RunAs". Иерархия окон и содержимое внутри сильно отличаются от того, что я вижу, если я сканирую процесс, запущенный как зарегистрированный пользователь.

Хотя в обоих экземплярах браузера я вижу (оконные классы) Chrome_WidgetWin_0 и Chrome_WidgetWin_1, только тот, который работает как текущий пользователь, предоставляет доступ к адресной строке. Любая идея о том, что происходит, когда хром запускается как другой пользователь? Есть ли способ обхода или я должен смотреть на другую технологию?

Ответ 1

Я обнаружил, что если файл PDF открыт в chrome viewer (в некоторых версиях хром) появляется окно, на которое вы ссылались. Проверьте, какой URL-адрес используется при открытии хром.

Я также прочитал, что приглашение для запроса пароля может открыть одно и то же окно. Окно PDF появляется только в том случае, если окно запускается определенными процессами/пользователями.

Ответ 2

Как отметил Пенн, это может иметь отношение к просмотру PDF, что вызвало особые проблемы в самых странных местах.

Глядя на отслеживание ошибок здесь, это похоже на спорадическое поведение с PDF файлами, а "устаревшее окно" было введено в недавней сборке, поэтому, возможно, попробуйте вернуться к более ранней версии Chrome.

Также я предполагаю, что вы используете хром://доступность с

Global accessibility mode: on
Show internal accessibility tree instead of native: on

или начальный хром с флагом - доступность для рендеринга - это необходимое условие для других программ автоматизации, таких как autoit, как показано здесь.

Если вы не можете заставить этот метод работать, я рекомендую попробовать здесь autoit script.

Вот пример кода autoit который показывает захват адресной строки и использование ее для общей навигации, при других вещах!