3

Windows API を介して、C++ Builder または Delphi で記述された外部 Win32 アプリケーションに属するフォーム (TForm) 上の VCL コントロールを列挙および反復することができます。

さよなら。

4

3 に答える 3

7

いいえ。まず、Windows API は "VCL" が何であるかを認識していないことを考慮してください。「TButton」または「TStringGrid」を認識していません。また、ウィンドウ ハンドルさえも持たない「TImage」または「TLabel」を認識していません。

ウィンドウ化されたコントロールへのハンドルを取得するために使用できます。それらのクラス名EnumChildWindowsを調べて、それらが「TButton」または「TStringGrid」に由来することを判断できますが、それでもオブジェクト関連の機能にはアクセスできません。オブジェクト参照がないため、プロパティを読み取ったり、メソッドを呼び出したりすることはできません。

Automated QA のTestCompleteは、外部プログラムからプログラムのフォームとクラスへのアクセスを提供します。これは、Delphi プログラムにユニットを含めることで機能し、そのユニットは基本的に、TestComplete プログラムがプログラムの内部を照会するために使用するバック ドアを提供します。これには、アプリケーション開発者の協力が必要です。任意のプログラムで TestComplete を実行することはできません。

于 2009-10-25T02:39:44.167 に答える
0

Delphi 2006までは、これにvcltest3.dllを使用できました。しかし今、あなたはロブ・ケネディが提案する方法に行かなければなりません。

于 2009-10-26T16:19:39.467 に答える
0

実行可能ファイルにリソースとして格納されている DFM を確認できます。

Anders Ohlsson は、少し前にこれを行うVCL スキャナー アプリケーションを作成しました。ソースコードも公開されています。

于 2009-10-26T04:25:36.533 に答える