2

C# から VBScript の関数を呼び出すことができるかどうか知りたいです。明確にしてみましょう。主に VBScript を使用して、別のアプリケーションを自動化するアプリケーション (Quick Test Professional または "QTP") を使用しています。アドイン モデルを介して、.NET アセンブリであるテスト アプリケーション (QTP) にアドインを作成することにより、テスト機能を拡張する機能があります。基本的なワークフローは、VBScript テストがテスト アプリケーションを自動化し、拡張性アドイン アセンブリ内のクラスでメソッドを呼び出して、より複雑なことを実行できるようにすることです。この部分は正常に動作します。

私が知りたいのは、C# コード (アセンブリの拡張機能アド内) が VBScript の関数にコールバックできるかどうかです。テスト アプリケーション フレームワーク (QTP) がこれを明示的にサポートしているとは思わないので、標準の相互運用技術を使用してこれを行う方法があるかどうか疑問に思っています。GetRef() を使用して目的の VBScript 関数への参照を取得し、これを拡張アドインで呼び出すメソッドにパラメーターとして渡すことを途中で考えていました (この時点でもマーシャリングの問題に遭遇するのではないでしょうか?)次に、拡張性アドインの C# コード内で、何らかの方法でこのオブジェクトのメソッドを呼び出します。これは私が完全に迷っているところです (リフレクションで通常使用される必要な型情報なしでこれを行う方法がわからないため)。

無理だとは思いますが、その場合は確認をお願いします。

ありがとうございました!

4

3 に答える 3

0

それはタフです。

VBScript 側で .NET コンポーネントのイベント ハンドラーを記述し、関数を呼び出したいときに .NET 側でイベントを発生させてみることをお勧めします。

実際には QTP のスクリプト エンジンに依存しているため、機能しない可能性があることに注意してください。たとえそれがフラストレーションのエクササイズになっても驚かないでください。

WSH とイベント処理の例を参照してください http://msdn.microsoft.com/en-us/library/ms974564.aspx繰り返しますが、これはおそらく QTP には当てはまりませんが、問題への潜在的なアプローチのアイデアを提供するためのものです。 .

編集:役立つかもしれないし、役に立たないかもしれない追加のリンク!

http://www.west-wind.com/presentations/dotnetfromVfp/DotNetFromVfp_EventHandling.asp

于 2009-06-25T16:45:13.360 に答える
0

VBScript はどのように C# コードを呼び出しますか? 本当に QTP を呼び出しており、QTP が C# コードを呼び出していると思われます。その場合、QTP だけが VBScript をコールバックできる可能性があります。

C# コードはどのような状況でコールバックしますか? VBScript を非同期でコールバックできるとは思えません。

于 2009-06-25T16:31:02.717 に答える