10

MSAA(Win7)を使用して、Chromeブラウザでアドレスバーを取得し、別のURLに置き換えようとしています。クロムが正常に(ログオンしたユーザーとして)起動されると、プロセスが所有するウィンドウクラスのUIツリーを横断して、IAccessibleインターフェイスを使用してアドレスバーを見つけることができます。 しかし、別のユーザーとして(ウィンドウでRunAsを使用して)chromeを起動すると、 "RunAs"プロセスが所有するクラスを通過するときに、 "chrome legacy window"という名前のウィンドウが表示されます。ログオンしているユーザーとして実行されているプロセスをスキャンすると、ウィンドウ階層とその中のコンテンツは、私が見るものとは大きく異なります。RunAsでChromeを起動すると「Chromeレガシーウィンドウ」

両方のブラウザインスタンスでChrome_WidgetWin_0 & Chrome_WidgetWin_1が表示されますが、現在のユーザーとして実行されているものだけがアドレスバーにアクセスできます。 chromeが別のユーザーとして起動されたときに何が起こっているのか考えてみましょうか?回避策はありますか、別のテクノロジーを検討する必要がありますか?

答えて

4

私は、PDFファイルがクロムビューア(クロームの一部のバージョン)で開いている場合、参照したウィンドウが表示されることがわかりました。クロームを開くときに使用されているURLを確認してください。

また、パスワード要求のプロンプトで同じウィンドウが開くことがあることも読んでいます。 PDFウィンドウは、特定のプロセス/ユーザによってウィンドウが起動された場合にのみ表示されます。

2

Penn氏によると、これはPDFビューと関連している可能性があります。

バグトラッカーhereこれはPDFの散発的な動作のようですが、最近のビルドでは「レガシーウィンドウ」が導入されているため、以前のバージョンのChromeにロールバックする可能性があります。

また、私はあなたがChromeを使用していると推定:

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

またはフラグ--force-レンダラ-アクセシビリティのクロムを開始すると//のアクセシビリティ見られるように、AutoItのような他の自動化プログラムのための前提条件であると思われますhere

この方法が機能しない場合は、そこにautoitスクリプトを試すことをおすすめします。

アドレスバーをつかみ、一般的なナビゲーションに使用することを示すautoit code exampleがあります。

関連する問題