UI オートメーションをサポートしていないサード パーティ コントロール用の UI オートメーション プロバイダーを作成するすぐに使用できる方法はありますか?
私の問題: VsFlexGrid ActiveX コントロールを使用して vb6 アプリケーションを自動化しようとすると、そのプロパティとメソッドにアクセスできません。
ありがとうございました
UI オートメーションをサポートしていないサード パーティ コントロール用の UI オートメーション プロバイダーを作成するすぐに使用できる方法はありますか?
私の問題: VsFlexGrid ActiveX コントロールを使用して vb6 アプリケーションを自動化しようとすると、そのプロパティとメソッドにアクセスできません。
ありがとうございました
それは可能ですが、それは多くの作業であり、すべての状況で適切であるとは限りません。
重要な要件は、ターゲットが次のことを制御することです。
独自のHWNDを持ち、できればよく知られた安定したクラス名を持つ
別のプロセスからのそのコントロールと通信するための明確な方法があります。Windowsメッセージの一部のセットを使用するコントロール(Win32共通コントロールなど)は、広範なインターフェイス(IHTMLDocument)を公開するMS Internet Explorerコントロールなどのコントロールと同様に、このカテゴリに分類されます。
ただし、コントロールに外部から情報にアクセスする方法がない場合、UIオートメーションはあまり役に立ちません。ここでUIAが行っているのは、既存のフレームワークにアダプタークラスを挿入できるようにすることだけです。しかし、そもそも基礎となる情報を取得するための新しいツールや追加のツールは提供されていません。
古いVB時代のActiveXコントロールは、いくつかの課題です。フォーム上の1つのコントロールを取得できる場合は、さまざまなCOMインターフェイスを使用して、そのフォーム上の他のコントロールに移動し、それらのプロパティにアクセスできます。ただし、別のプロセスからこれを簡単に実行することはできません。また、これらのActiveXコントロールのうち、クライアントコードが代わりにCOMインターフェイスを使用することを前提としているため、あらゆる種類のWindowsメッセージをサポートしているものはほとんどありません。