12

我正在尝试使用 MSAA(在 Win7 上)在 chrome 浏览器中获取地址栏并将其替换为不同的 url。当chrome正常启动时(作为登录用户),我可以通过遍历进程拥有的窗口类的UI树来使用IAccessible接口找到地址栏。但是,如果我以其他用户身份启动 chrome(通过在 Windows 中使用 RunAs),我会在浏览“RunAs”进程拥有的类时看到名称为“chrome legacy window”的窗口。如果我扫描以登录用户身份运行的进程,则窗口层次结构和其中的内容与我看到的大不相同。

虽然我可以在两个浏览器实例中看到(窗口类名)Chrome_WidgetWin_0 和 Chrome_WidgetWin_1,但只有以当前用户身份运行的实例才可以访问地址栏。关于以不同用户身份启动 chrome 时会发生什么的任何想法?是否有任何解决方法或者我应该寻找不同的技术?

4

2 回答 2

4

我发现如果在 chrome 查看器(在某些版本的 chrome 中)中打开了 PDF 文件,则会出现您提到的窗口。请确认您打开 chrome 时使用的是哪个 URL。

我还读到密码请求提示可能会导致打开相同的窗口。仅当窗口由某些进程/用户启动时才会显示 PDF 窗口

于 2016-06-06T17:15:05.713 回答
4

正如 Penn 所指出的,这可能与 PDF 视图有关,它在最奇怪的地方引起了特殊的问题。

查看此处的错误跟踪器,它看起来像是 PDF 的零星行为,并且在最近的版本中引入了“旧窗口”,因此也许尝试回滚到早期版本的 Chrome。

另外我认为您正在使用 chrome://accessibility with

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

或使用标志 --force-renderer-accessibility 启动 chrome,这似乎是其他自动化程序(如此处所示的 autoit)的先决条件

如果您无法使用此方法,我建议您尝试那里的 autoit 脚本。

这是一个 autoit代码示例,显示了抓取地址栏并将其用于一般导航,以及其他事情!

于 2016-06-09T13:10:21.917 回答