2008-12-05 45 views
11

tôi có thể làm điều này:Câu hỏi về CreateObject() trong VB6/VBA

Dim fso As New FileSystemObject 

hoặc tôi có thể làm điều này:

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

Làm sao tôi biết những gì chuỗi để sử dụng cho CreateObject? Ví dụ, làm thế nào tôi biết để sử dụng "Scripting". một phần của "Scripting.FileSystemObject"? Bạn đi đâu để tìm kiếm?

Trả lời

20

Đây là ProgID của các thành phần trong đó được đăng ký trong Windows registry dưới phím HKCR:

HKEY_CLASSES_ROOT\Scripting.FileSystemObject 

ProgID của là những định danh có thể đọc được con người cho các đối tượng COM. Chúng trỏ đến CLSID thực tế, trong trường hợp này là:

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

Đây là nơi bạn có thể tìm thấy COM .dll thực tế bao gồm việc triển khai thành phần.

Trong mã mẫu đầu tiên bạn đã cung cấp, bạn đang thực hiện việc ràng buộc sớm và trong mã thứ hai bạn đang thực hiện kết buộc muộn.

1

Tôi sẽ bắt đầu bằng cách tìm kiếm FileSystemObject trong thư viện MSDN tại http://msdn.microsoft.com/library

Các trang web chứa rất nhiều các tài liệu, bao gồm các chi tiết về làm thế nào để gọi CreateObject.

2

Sử dụng IDE VB6, chọn Dự án, Tham khảo, sau đó chọn tham chiếu 'Thời gian chạy Microsoft Scripting'.

Nếu bạn không biết tham chiếu được gọi là gì, bạn có thể sử dụng nút Duyệt qua hộp thoại Tham khảo để chọn tệp/hệ thống 32/scrrun.dll.

Với tham chiếu đã chọn, đóng hộp thoại Tham khảo, sau đó mở Trình duyệt đối tượng (Trình đơn xem). Thay đổi danh sách thả xuống thành ứng cử viên có khả năng nhất, là 'Scripting'. Điều này sẽ tiết lộ các lớp của thư viện, một trong số đó là 'FileSystemObject'. Do đó, bạn sẽ phát hiện ra chuỗi cần thiết cho CreateObject là 'Scripting.FileSystemObject'.

Nếu bạn không biết tên tham chiếu hoặc tên tệp nhưng bạn đã biết tên lớp thì bạn có thể tìm kiếm sổ đăng ký cho "FileSystemObject" và sẽ sớm được tiết lộ rằng tên đủ điều kiện bạn yêu cầu là ' Scripting.FileSystemObject '.