Подтвердить что ты не робот

Вопрос о CreateObject() в VB6/VBA

Я могу это сделать:

Dim fso As New FileSystemObject

или я могу это сделать:

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

Как узнать, какую строку использовать для CreateObject? Например, как я могу использовать "Scripting". часть "Scripting.FileSystemObject"? Куда вы идете посмотреть это?

4b9b3361

Ответ 1

Это компонент ProgID компонента, зарегистрированного в реестре Windows под ключом HKCR:

HKEY_CLASSES_ROOT\Scripting.FileSystemObject

ProgID являются человекообразными идентификаторами для COM-объектов. Они указывают на фактические CLSID, которые в этом случае:

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

Это место, где вы можете найти фактическую COM-DLL, которая включает в себя реализацию компонента.

В первом примере кода, который вы указали, вы выполняете раннее связывание, а во втором - последнее связывание.

Ответ 2

С помощью VB6 IDE выберите "Проект", "Ссылки", затем выберите ссылку "Время выполнения сценариев Microsoft".

Если вы не знали, что называется ссылкой, вы можете использовать кнопку "Обзор" диалогового окна "Обзор", чтобы выбрать файл /system 32/scrrun.dll.

С выбранной ссылкой закройте диалоговое окно "Ссылки", затем откройте "Обозреватель объектов" (меню "Вид" ). Измените выпадающий список на наиболее вероятного кандидата, являясь "Scripting". Это откроет классы библиотеки, одним из которых является "FileSystemObject". Следовательно, вы обнаружите, что строка, необходимая для CreateObject, является "Scripting.FileSystemObject".

Если вы не знаете имя ссылки или имя файла, но знаете имя класса, то вы можете выполнить поиск в реестре для "FileSystemObject", и вскоре должно быть обнаружено, что для полного имени вам требуется "Scripting.FileSystemObject".

Ответ 3

Я бы начал с поиска FileSystemObject в библиотеке MSDN на http://msdn.microsoft.com/library

Сайт заполнен документацией, включая сведения о том, как вызвать CreateObject.