2008-12-05 3 views
11

Ich kann dies tun:Frage zum Create() in VB6/VBA

Dim fso As New FileSystemObject 

oder ich kann dies tun:

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

Wie kann ich wissen, welche Zeichenfolge für Create zu benutzen? Zum Beispiel, wie würde ich wissen, das "Scripting" zu verwenden. Teil von "Scripting.FileSystemObject"? Wohin gehst du, um das herauszufinden?

Antwort

20

Es ist die ProgID der Komponente, die in Windows-Registrierung unter HKCR Schlüssel registriert ist:

HKEY_CLASSES_ROOT\Scripting.FileSystemObject 

ProgID sind für Menschen lesbaren Identifikatoren für COM-Objekte. Sie verweisen auf den tatsächlichen CLSIDs, die in diesem Fall:

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

Dies ist der Ort, an dem Sie den aktuellen COM-DLL finden können, die die Umsetzung der Komponente enthält.

Im ersten Beispielcode, den Sie zur Verfügung gestellt haben, tun Sie eine frühe Bindung, und in der zweiten tun Sie eine späte Bindung.

1

Ich beginne in der MSDN-Bibliothek mit der Suche nach Filesystem würde, ist bei http://msdn.microsoft.com/library

Die Website voll von der Dokumentation, einschließlich der Einzelheiten, wie Create nennen.

2

Verwenden Sie die VB6-IDE, wählen Sie Project, References und dann den Verweis "Microsoft Scripting Runtime".

Wenn Sie nicht wissen, wie die Referenz aufgerufen wird, können Sie die Schaltfläche Durchsuchen des Verweisdialogfelds verwenden, um die Datei/system 32/scrrun.dll auszuwählen.

Schließen Sie mit dem ausgewählten Verweis den Verweise-Dialog und öffnen Sie den Objektbrowser (Menü Ansicht). Ändern Sie das Drop-down zum wahrscheinlichsten Kandidaten, indem Sie "Scripting" verwenden. Dadurch werden die Klassen der Bibliothek angezeigt, von denen eine "FileSystemObject" ist. Daher haben Sie festgestellt, dass die für CreateObject erforderliche Zeichenfolge 'Scripting.FileSystemObject' ist.

Wenn Sie den Referenznamen oder den Dateinamen nicht kennen, aber Sie den Klassennamen kennen, können Sie in der Registrierung nach "FileSystemObject" suchen und es sollte bald enthüllt werden, dass der vollständig qualifizierte Name " Scripting.FileSystemObject '.