13

我可以做这个:

Dim fso As New FileSystemObject

或者我可以这样做:

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

我如何知道 CreateObject 使用什么字符串?例如,我怎么会知道使用“脚本”。“Scripting.FileSystemObject”的一部分?你去哪里查这个?

4

3 回答 3

25

它是在 Windows 注册表中 HKCR 键下注册的组件的ProgID :

HKEY_CLASSES_ROOT\Scripting.FileSystemObject

ProgID 是 COM 对象的人类可读标识符。它们指向实际的 CLSID,在本例中为:

HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}

这是您可以找到包含组件实现的实际 COM .dll 的地方。

在您提供的第一个示例代码中,您正在执行早期绑定,而在第二个示例代码中,您正在执行后期绑定。

于 2008-12-05T21:22:02.693 回答
3

使用 VB6 IDE,选择 Project、References,然后选择引用“Microsoft Scripting Runtime”。

如果您不知道引用的名称,您可以使用“引用”对话框的“浏览”按钮选择文件 /system 32/scrrun.dll。

选择参考后,关闭参考对话框,然后打开对象浏览器(视图菜单)。将下拉列表更改为最有可能的候选者,即“脚本”。这将显示库的类,其中之一是“FileSystemObject”。因此,您会发现 CreateObject 所需的字符串是“Scripting.FileSystemObject”。

如果您不知道引用名称或文件名,但您知道类名,那么您可以在注册表中搜索“FileSystemObject”,很快就会发现您需要的完全限定名称是“Scripting.FileSystemObject” .

于 2008-12-09T10:55:56.540 回答
1

我将首先在http://msdn.microsoft.com/library的 MSDN 库中搜索 FileSystemObject

该站点充满了文档,包括如何调用 CreateObject 的详细信息。

于 2008-12-05T21:35:20.030 回答