問題タブ [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.
delphi - UI言語から独立してGoogle ChromeでOmnibox IAccessible子オブジェクトを識別する方法は?
OleAcc で Delphi XE2 を使用すると、Google Chrome ウィンドウのすべての IAccessible 子オブジェクトを横断し、それらの NAME と VALUE をそれぞれ と で取得しget_AccName
てget_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 プロパティを確認しましたが、この目的に役立つと思われるものは何も見つかりませんでした。
c++ - Google Chrome で IAccessible を使用すると、不完全なツリーが返される
クリックをシミュレートし、タブ ボタンのクリック イベントを受け取るために、Google Chrome の QA 自動化を作成しようとしています。
IAccessibleインターフェイスとAccessibleChildren APIを使用して、完全なアクセス可能な要素ツリーを取得しています。
AccExplorer 2.0 を使用してツリーを表示すると、見栄えがよくなります (最後の画像を参照)。
しかし、私のプログラムは部分的なツリーしか表示せず、名前は AccExplorer に表示されるものと一致しません。
私は走っています:
- Chrome 37 ベータ版
- 勝利7 64ビット
ツリー全体を表示できない理由はありますか?
ありがとう
これは私のプログラムのソース (C++) です: (MSDN の例と同様)
そして、これはコンソール出力です:
完全なツリーを示す AccExplorer のスクリーンショットを次に示します(一部のノードは折りたたまれています) 。
編集: OBJID_WINDOWの代わりにOBJID_WINDOW
を使用する場合( AccessibleObjectFromWindowの例のように) - より多くのノードを持つツリーを取得しますが、それでもタブ要素が表示されません。
delphi - Delphi XE で宣言されていない識別子 AccessibleObjectFromEvent
次のエラーを解決するにはどうすればよいですか。関数 AccessibleObjectFromEvent が見つからないようです。バージョン Delphi XE6 を使用しています。
このプロジェクトは、ブラウザでアクティブな URL を一覧表示します。
画像
http://i.imgur.com/2JbiIR7.png
これが私のコードです:
c++ - Google Chrome で IAccessible を使用して「Enter」キーの押下をシミュレートする
URL ナビゲーションをシミュレートするために、Google Chrome の QA 自動化を作成しようとしています。正しいオブジェクト「アドレスと検索バー」を取得し、URL も正常に設定しました。
URLを設定した後に「Enter」キーを押すことをシミュレートする方法がわかりません。accDoDefaultActionメソッドを試しましたが、このオブジェクトではサポートされていません。
助言がありますか?
ありがとう
c++ - AccessibleChildren の呼び出し中にスレッドがフリーズする
時々、私の C++ アプリケーションは、このページの MSDN の例に基づくコードを使用して、複数のアプリケーションの MSAA ツリーをたどります: https://msdn.microsoft.com/en-us/library/windows/desktop/dd317975(v=vs.85 .aspx
数か月前に AccessibleChildren 呼び出しでスレッドがフリーズすることがあることに気付き始めるまで、それは完全に機能しました。
これが私が知っていることです:
- これはあまり頻繁には発生しません
- さまざまなアプリケーションのツリーを歩いているときに発生します。
- ボトムコールが 1 に等しい場所のミニダンプを既にデバッグしたので、現在のノードの子の量には絶対に接続されていません
childCount
。 - 異なるPCで発生します。
- そのような位置にあるスレッドは決して起きません。フリーズが発生すると、スレッドはアプリが再起動されるまでこの状態のままになります。
- そのような反復中にスレッドが単に死ぬこともあり、そのような場合、スレッドのスタックトレースをキャッチできません。その後、アプリの残りの部分は実行され続けますが、タスクは基本的にスリープを伴う無限ループですが、特定のスレッドが機能しなくなったことをダンプが示しています。フリーズにつながっていると思います。何とかして。
私の質問は: 誰かがそのような凍結の理由とそれを防ぐ方法を指摘できますか? そうでない場合、別のスレッドから安全に「タイムアウト」できる再帰を別のスレッドに移動する方法はありますか?
これは、そのようなイベントのスタック トレースの例です。top は、最もネストされた呼び出しです。読みを少し短くするために、ここから再帰を削除しました。
c++ - C ++でChromeの現在のバージョンの現在のURLを取得する方法
MSAA API を使用して Google Chrome から URL を取得したい、既に StackOverflow でこれを見つけたが、この動作を複製したい => AccessibleObjectFromEventを使用せずにAccessibleObjectFromWindowを使用して、Chromeの現在のバージョンの現在の URL を取得する方法。しかし、これらの行の後:
szAddressBox が空です。どこが間違っていますか?
vb.net - IAccessible オブジェクトをより便利なオブジェクトに割り当てる可能性
Visual Studio と VB で Excel 用のアドインを作成しています。メニュー (リボン) のクリック アクションを追跡したい。
IAccessible で実際に動作するものを作成しましたが、チェックを行うたびにシステム全体を調べて、特定のメニュー項目が存在し、適切なステータスと役割を持っているかどうかを確認する必要があるため、低速です。
これらのアイテムが見つかったら、おそらくボタンなどのより便利なオブジェクトに割り当てて、「クリック時」イベントを添付する方法はありますか? または、システム検査を繰り返さない他の方法はありますか?
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 を実装した経験のある人はいますか?
コードを提供できれば幸いですが、通常の投稿には多すぎると思います。