3

QuickTest Professional のスクリプト機能を拡張するためのオプションを検討しており、今朝この記事を見つけたので、少し試してみることにしました。以下のコードは、QTP 環境内で実行すると問題なく動作しますが、QTP 環境外でも使用できることがわかりました。残念ながら、スタンドアロンの .vbs ファイルから実行するとエラーが発生します。

Set MyDate = DotNetFactory.CreateInstance("System.DateTime").Now
msgbox MyDate.ToShortDateString()

エラーは「必要なオブジェクト: 'DotNetFactory'」です。

以前に VBScript から .Net 呼び出しを行ったことがありますが、DotNetFactory を使用したことはありません。次のようなコード

Set coll = CreateObject("System.Collections.Queue")

エラーにはなりません。

DotNetFactory への参照を設定する必要がありますか? 記事のテキスト

型名として「System.DateTime」を使用します。このアセンブリは、既に読み込まれている名前空間 'System' (mscorlib.dll) に属しているため、指定する必要はありません。

スクリプト エディターによって自動的に読み込まれるものは何もないため、そう思います。もしそうなら、どうすればいいですか?私は IDE を使用しておらず、テキスト エディターのみを使用しているため、すべての参照をスクリプト自体で読み込む必要があります。

更新:モットーが指摘したように、追加の作業なしでは実行できません。記事からの引用は、mscorlib に含まれていSystem.DateTimeないことを指摘していました。DotNetFactory

4

2 に答える 2

3

AFAIKDotNetFactoryは、Mikeb の回答へのコメントで述べたように、mscorelib の一部ではなく、QTP によって作成されたオブジェクトです。したがって、QTP がプログラム ID を公開していない限り、VBS ファイルに沿ったスタンドからアクセスすることはできません。

于 2009-12-31T22:15:52.827 に答える
0

次のように、DotNetFactory を作成できますか。

Set dnf = CreateObject("Qualified.Name.To.DotNetFactory")
dnf.CreateInstance("System.DateTime")
于 2009-12-31T17:04:00.570 に答える