問題タブ [iaccessible]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
313 参照

delphi - UI言語から独立してGoogle ChromeでOmnibox IAccessible子オブジェクトを識別する方法は?

OleAcc で Delphi XE2 を使用すると、Google Chrome ウィンドウのすべての IAccessible 子オブジェクトを横断し、それらの NAME と VALUE をそれぞれ と で取得しget_AccNameget_AccValue、URL を IAccessible VALUE として含む Omnibox コントロールを検索できます。残念ながら、Chrome の IAccessible NAME はローカライズされているため、ドイツ語の UI 言語を使用する Chrome では、Omnibox コントロールを識別するために IAccessible NAME "Adress- und suchleiste" を使用する必要があります。これは、Chrome のドイツ語の UI 言語でうまく機能します。この IAccessible NAME は Chrome UI 言語ごとに異なるため、すべての Chrome UI 言語で Omnibox コントロールを識別するには、すべての Chrome IAccessible 子オブジェクトを Omnibox コントロールのすべてのローカライズされた IAccessible NAME バリエーションと比較する必要があります。だから私の質問は:

Omnibox IAccessible 子オブジェクトを UI 言語とは別に識別する方法は他にありますか?

MS Inspect.exe を使用して、Chrome の Omnibox 子オブジェクトのすべての IAccessible プロパティを確認しましたが、この目的に役立つと思われるものは何も見つかりませんでした。

0 投票する
1 に答える
2897 参照

c++ - Google Chrome で IAccessible を使用すると、不完全なツリーが返される

クリックをシミュレートし、タブ ボタンのクリック イベントを受け取るために、Google Chrome の QA 自動化を作成しようとしています。

IAccessibleインターフェイスAccessibleChildren APIを使用して、完全なアクセス可能な要素ツリーを取得しています。

AccExplorer 2.0 を使用してツリーを表示すると、見栄えがよくなります (最後の画像を参照)。

しかし、私のプログラムは部分的なツリーしか表示せず、名前は AccExplorer に表示されるものと一致しません。

私は走っています:

  • Chrome 37 ベータ版
  • 勝利7 64ビット

ツリー全体を表示できない理由はありますか?

ありがとう

これは私のプログラムのソース (C++) です: (MSDN の例と同様)

そして、これはコンソール出力です:

完全なツリーを示す AccExplorer のスクリーンショットを次に示します(一部のノードは折りたたまれています) 。AccExplorer の作業例


編集: OBJID_WINDOWの代わりにOBJID_WINDOW
を使用する場合( AccessibleObjectFromWindowの例のように) - より多くのノードを持つツリーを取得しますが、それでもタブ要素が表示されません。

0 投票する
1 に答える
1390 参照

delphi - Delphi XE で宣言されていない識別子 AccessibleObjectFromEvent

次のエラーを解決するにはどうすればよいですか。関数 AccessibleObjectFromEvent が見つからないようです。バージョン Delphi XE6 を使用しています。

このプロジェクトは、ブラウザでアクティブな URL を一覧表示します。

画像

ここに画像の説明を入力

http://i.imgur.com/2JbiIR7.png

これが私のコードです:

0 投票する
0 に答える
256 参照

c++ - Google Chrome で IAccessible を使用して「Enter」キーの押下をシミュレートする

URL ナビゲーションをシミュレートするために、Google Chrome の QA 自動化を作成しようとしています。正しいオブジェクト「アドレスと検索バー」を取得し、URL も正常に設定しました。

URLを設定した後に「Enter」キーを押すことをシミュレートする方法がわかりません。accDoDefaultActionメソッドを試しましたが、このオブジェクトではサポートされていません。

助言がありますか?

ありがとう

0 投票する
1 に答える
420 参照

c++ - AccessibleChildren の呼び出し中にスレッドがフリーズする

時々、私の C++ アプリケーションは、このページの MSDN の例に基づくコードを使用して、複数のアプリケーションの MSAA ツリーをたどります: https://msdn.microsoft.com/en-us/library/windows/desktop/dd317975(v=vs.85 .aspx

数か月前に AccessibleChildren 呼び出しでスレッドがフリーズすることがあることに気付き始めるまで、それは完全に機能しました。

これが私が知っていることです:

  • これはあまり頻繁には発生しません
  • さまざまなアプリケーションのツリーを歩いているときに発生します。
  • ボトムコールが 1 に等しい場所のミニダンプを既にデバッグしたので、現在のノードの子の量には絶対に接続されていませんchildCount
  • 異なるPCで発生します。
  • そのような位置にあるスレッドは決して起きません。フリーズが発生すると、スレッドはアプリが再起動されるまでこの状態のままになります。
  • そのような反復中にスレッドが単に死ぬこともあり、そのような場合、スレッドのスタックトレースをキャッチできません。その後、アプリの残りの部分は実行され続けますが、タスクは基本的にスリープを伴う無限ループですが、特定のスレッドが機能しなくなったことをダンプが示しています。フリーズにつながっていると思います。何とかして。

私の質問は: 誰かがそのような凍結の理由とそれを防ぐ方法を指摘できますか? そうでない場合、別のスレッドから安全に「タイムアウト」できる再帰を別のスレッドに移動する方法はありますか?

これは、そのようなイベントのスタック トレースの例です。top は、最もネストされた呼び出しです。読みを少し短くするために、ここから再帰を削除しました。

0 投票する
0 に答える
855 参照

c++ - C ++でChromeの現在のバージョンの現在のURLを取得する方法

MSAA API を使用して Google Chrome から URL を取得したい、既に StackOverflow でこれを見つけたが、この動作を複製したい => AccessibleObjectFromEventを使用せずにAccessibleObjectFromWindowを使用して、Chromeの現在のバージョンの現在の URL を取得する方法。しかし、これらの行の後:

szAddressBox が空です。どこが間違っていますか?

0 投票する
0 に答える
121 参照

vb.net - IAccessible オブジェクトをより便利なオブジェクトに割り当てる可能性

Visual Studio と VB で Excel 用のアドインを作成しています。メニュー (リボン) のクリック アクションを追跡したい。

IAccessible で実際に動作するものを作成しましたが、チェックを行うたびにシステム全体を調べて、特定のメニュー項目が存在し、適切なステータスと役割を持っているかどうかを確認する必要があるため、低速です。

これらのアイテムが見つかったら、おそらくボタンなどのより便利なオブジェクトに割り当てて、「クリック時」イベントを添付する方法はありますか? または、システム検査を繰り返さない他の方法はありますか?

0 投票する
1 に答える
431 参照

c++ - Microsoft Active Accessibility、VB6、Ranorex

Ranorex は、Windows 用のユーザー インターフェイス テスト ツールです。UI 要素が Microsoft Active Accessiblity (MSAA) をサポートしている場合、要素に関する豊富な情報を取得できます。これは、テスト スクリプトを記述するのに非常に役立ちます。

VB6 には、MSAA をサポートしていない多くのレガシー コードがあります。

次のように、VB6 UserControls の一部にこのサポートを追加しようとしています。

ATL を使用して C++ で ActiveX コンポーネントを作成しました。これには、インターフェイス IAccessible を実装するヘルパー クラスが含まれています。また、VB6 から呼び出すことができる初期化関数も含まれています。

VB6 UserControl はヘルパー オブジェクトを作成し、そのウィンドウ ハンドルと名前を初期化関数に渡します。ヘルパー オブジェクトはウィンドウをサブクラス化し、WM_GETOBJECT メッセージを処理して、ウィンドウに IAccessible インターフェイスを提供します。

私はコードをデバッグしましたが、私が知る限り、それは機能しています。Ranorex Spy ツールは IAccessible インターフェイスを取得し、インターフェイスのメソッドを呼び出します。

ただし、Ranorex は、このインターフェイスを介してフェッチしたように見える情報を実際には表示しません。

これは非常に特殊な問題であることは承知していますが、Ranorex や他の同様のテスト ツールで使用するために IAccessible を実装した経験のある人はいますか?

コードを提供できれば幸いですが、通常の投稿には多すぎると思います。