3

UI オートメーションをサポートしていないサード パーティ コントロール用の UI オートメーション プロバイダーを作成するすぐに使用できる方法はありますか?

私の問題: VsFlexGrid ActiveX コントロールを使用して vb6 アプリケーションを自動化しようとすると、そのプロパティとメソッドにアクセスできません。

ありがとうございました

4

1 に答える 1

3

それは可能ですが、それは多くの作業であり、すべての状況で適切であるとは限りません。

重要な要件は、ターゲットが次のことを制御することです。

  • 独自のHWNDを持ち、できればよく知られた安定したクラス名を持つ

  • 別のプロセスからのそのコントロールと通信するための明確な方法があります。Windowsメッセージの一部のセットを使用するコントロール(Win32共通コントロールなど)は、広範なインターフェイス(IHTMLDocument)を公開するMS Internet Explorerコントロールなどのコントロールと同様に、このカテゴリに分類されます。

ただし、コントロールに外部から情報にアクセスする方法がない場合、UIオートメーションはあまり役に立ちません。ここでUIAが行っているのは、既存のフレームワークにアダプタークラスを挿入できるようにすることだけです。しかし、そもそも基礎となる情報を取得するための新しいツールや追加のツールは提供されていません。

古いVB時代のActiveXコントロールは、いくつかの課題です。フォーム上の1つのコントロールを取得できる場合は、さまざまなCOMインターフェイスを使用して、そのフォーム上の他のコントロールに移動し、それらのプロパティにアクセスできます。ただし、別のプロセスからこれを簡単に実行することはできません。また、これらのActiveXコントロールのうち、クライアントコードが代わりにCOMインターフェイスを使用することを前提としているため、あらゆる種類のWindowsメッセージをサポートしているものはほとんどありません。

于 2012-02-22T20:04:11.310 に答える