1

TestComplete で利用できるものと同様のオブジェクト ブラウザ/マニピュレータを実行する必要があります。つまり、実行中の外部アプリケーションですべてのオブジェクトとそのプロパティをリストし、それらのプロパティを変更できるようにする必要があります。もちろん、これらすべてを実行時に行います。 .
MSAA/IAccessible はオブジェクトを読み取ることができますが、可視オブジェクトのみを返すことができ、私の知る限り、それらのプロパティを変更することはできません。
WinAPI を使用すると、ハンドルのないオブジェクト (ラベルなど) を読み取ることができませんでした。

理想的には、これを Delphi で実行したいと考えていますが、他の言語の提案も受け入れられます。

私ができるようにしたいことの例 (これは TestComplete で行われました):

TestComplete オブジェクト ブラウザ TestComplete オブジェクト ブラウザ 2

4

1 に答える 1

1

その仕事は簡単なことではありません。これを行う場合は、使用するすべてのアプリケーションフレームワーク(.NET、MFC、VCLなど)のデータを取得する特定のアプローチを使用する必要があります。これらのアプローチのいくつかは非常に単純ですが(たとえば、Reflection for .NETおよびJava)、他のいくつかはより複雑で、VCLの場合のように文書化されていない可能性があります。TestCompleteは、独自のフックをターゲットプロセスメモリにロードし、これらのモジュールを介してこのアプリケーションに関する情報を取得します。

さらに、私が知る限り、TestCompleteは、テストされたアプリケーションのさまざまな種類のデバッグ情報を読み取り、オブジェクトとそのメンバーを公開するときに使用できます。

IAccessibleとWinAPIを使用する方が簡単な方法ですが、効果が低い場合もあります。WinAPIを使用してラベルから情報を取得できなかったとのことですが。これは、VCLアプリケーションのTLabelオブジェクトがウィンドウオブジェクトではないために発生します。

于 2012-04-26T18:38:00.077 に答える