如何在独立的 .vbs 文件中从 VBScript 调用 DotNetFactory?

发布于 2024-08-16 21:08:00 字数 1100 浏览 7 评论 0原文

我一直在探索扩展 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”作为类型名称。 我们不需要指定程序集 为此,因为它已经属于 加载命名空间“系统” (mscorlib.dll)。

让我这么认为,因为我的脚本编辑器不会自动加载任何内容。如果是这样,我该怎么做?我没有使用 IDE,只是使用文本编辑器,因此任何引用都必须由脚本本身加载。

更新:正如 Motto 所指出的,如果没有一些额外的工作就无法完成。文章中的引用指出 mscorlib 中包含 System.DateTime 而不是 DotNetFactory

I've been exploring options for expanding my QuickTest Professional scripting capabilities, and came across this article this morning, so I decided to experiment a bit. The code below works fine when executed inside the QTP environment, but I could see a use for this outside of the QTP environment as well. Unfortunately, it is causing an error when run from a stand-alone .vbs file

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

The error is "Object Required: 'DotNetFactory'"

I've made .Net calls from VBScript before, but none of them have used DotNetFactory. Code such as

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

Does not cause an error.

Do I need to set a reference to DotNetFactory? The text from the article

We use ‘System.DateTime’ as type name.
We do not need to specify the assembly
for this as it belongs to the already
loaded namespace ‘System’
(mscorlib.dll).

makes me think so, because nothing is automatically loaded by my script editor. If so, how do I do this? I am not using an IDE, just a text editor, so any references would have to be loaded by the script itself.

Update: As pointed out by Motto, it can't be done without some extra work. The quote from the article was pointing out that System.DateTimenot DotNetFactory is included in mscorlib.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拍不死你 2024-08-23 21:08:00

AFAIK DotNetFactory 是由 QTP 创建的对象,而不是 mscorelib 的一部分,正如您在对 Mikeb 答案的评论中所说的那样。因此,除非 QTP 公开了 prog-id,否则您无法从独立的 VBS 文件访问它。

AFAIK DotNetFactory is an object created by QTP, not part of mscorelib as you said in a comment to Mikeb's answer. Therefore you can't access it from a stand along VBS file unless QTP has exposed a prog-id.

昨迟人 2024-08-23 21:08:00

您可以创建一个 DotNetFactory,如下所示:

Set dnf = CreateObject("Qualified.Name.To.DotNetFactory")
dnf.CreateInstance("System.DateTime")

Can you create a DotNetFactory, as in :

Set dnf = CreateObject("Qualified.Name.To.DotNetFactory")
dnf.CreateInstance("System.DateTime")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文