Microsoft脚本运行时#1

下一系列的技巧将涉及Microsoft脚本运行时库(Scrrun.dll)。 在我看来,这个图书馆是有史以来最有用,最实用的图书馆之一。 使用脚本运行时库,您可以检索与驱动器,文件夹,文件和文本文件有关的信息,并设置/检索驱动器,文件夹,文件和文本文件的某些属性。 通过此库公开的方法,您还可以操作这些对象。 由于该库提供了广泛的功能,因此我将其分解为几个组件,这些组件将成为下一系列技巧的主题。 我们的第一个相关技巧将向您展示如何检索PC上所有驱动器或所选单个驱动器的重要信息。 该代码非常直观,并且在我认为合适的地方插入了注释。 该代码在带有CD ROM驱动器,DVD驱动器,软盘驱动器,单个未分区固定磁盘和USB端口中小型闪存驱动器的Pentium 4 PC上使用。 如果您对本技巧有任何疑问,请随时提出。 脚本运行时库提示#1:


On Error GoTo ErrorHandler
On Error Resume Next    'Critical Line of code 
'Must set a Reference to the Microsoft Scripting Runtime Library (Scrrun.dll) 
'declare appropriate Object Variables
Dim fso As FileSystemObject, drv As Drive, drvSingle As Drive 
'Create an Instance of the FileSystemObject using 1 of 2 Methods
Set fso = New Scripting.FileSystemObject
                'OR
'Set fso = CreateObject("Scripting.FileSystemObject") 
Debug.Print "--------------------------------------------"
'Loop through all Drives on the PC
For Each drv In fso.Drives
  Debug.Print "Drive Letter: " & drv.DriveLetter
  Debug.Print "  Available Space: " & Format$(drv.AvailableSpace, "#,#,#,#") & " bytes"
  Debug.Print "  Drive Type: " & fDetermineDriveType(drv.DriveType)
  Debug.Print "  File System: " & drv.FileSystem
  Debug.Print "  Free Space: " & Format$(drv.FreeSpace, "#,#,#,#") & " bytes"
  Debug.Print "  Is Drive Ready?: " & IIf(drv.IsReady, "Yes", "No")
  Debug.Print "  Drive Path: " & drv.Path
  Debug.Print "  Root Folder: " & drv.RootFolder
  Debug.Print "  Drive Serial Number: " & drv.SerialNumber
  Debug.Print "  Drive Share Name: " & drv.ShareName & IIf(Nz(drv.ShareName) = "", _
                                   "Unavailable", drv.ShareName)
  Debug.Print "  Total Size of Drive: " & Format(drv.TotalSize, "#,#,#,#") & " bytes"
  Debug.Print "  Volume Name of Drive: " & IIf(Nz(drv.VolumeName) = "", "Unavailable", _
                                       drv.VolumeName)
  Debug.Print "--------------------------------------------"
Next 
'For a Single Drive, from this point on
Set drvSingle = fso.Drives("C:") 
Debug.Print "--------------------------------------------"
  Debug.Print "Drive Letter: " & drvSingle.DriveLetter & " (Single Drive)"
  Debug.Print "  Available Space: " & Format$(drvSingle.AvailableSpace, "#,#,#,#") & _
                                      " bytes"
  Debug.Print "  Drive Type: " & fDetermineDriveType(drvSingle.DriveType)
  Debug.Print "  File System: " & drvSingle.FileSystem
  Debug.Print "  Free Space: " & Format$(drvSingle.FreeSpace, "#,#,#,#") & " bytes"
  Debug.Print "  Is Drive Ready?: " & IIf(drvSingle.IsReady, "Yes", "No")
  Debug.Print "  Drive Path: " & drvSingle.Path
  Debug.Print "  Root Folder: " & drvSingle.RootFolder
  Debug.Print "  Drive Serial Number: " & drvSingle.SerialNumber
  Debug.Print "  Drive Share Name: " & drvSingle.ShareName & _
                 IIf(Nz(drvSingle.ShareName) = "", "Unavailable", drvSingle.ShareName)
  Debug.Print "  Total Size of Drive: " & Format(drvSingle.TotalSize, "#,#,#,#") & _
              " bytes"
  Debug.Print "  Volume Name of Drive: " & IIf(Nz(drvSingle.VolumeName) = "", "Unavailable", _
                                       drvSingle.VolumeName)
  Debug.Print "--------------------------------------------"

Private Function fDetermineDriveType(intDriveType As Integer) As String
'Interprets the Numeric Value returned by the Type Property and
'returns a String representing the Drive Type
Select Case intDriveType
  Case 0
    fDetermineDriveType = "Unknown"
  Case 1
    fDetermineDriveType = "Removable"
  Case 2
    fDetermineDriveType = "Fixed"
  Case 3
    fDetermineDriveType = "Remote"
  Case 4
    fDetermineDriveType = "CD ROM"
  Case 5
    fDetermineDriveType = "RAM Disk"
  Case Else
    fDetermineDriveType = "Unknown"
End Select
输出:
--------------------------------------------
Drive Letter: A
  Available Space: 833,536 bytes
  Drive Type: Removable
  File System: FAT
  Free Space: 833,536 bytes
  Is Drive Ready?: Yes
  Drive Path: A:
  Root Folder: A:\
  Drive Serial Number: 1284401684
  Drive Share Name: Unavailable
  Total Size of Drive: 1,457,664 bytes
  Volume Name of Drive: Unavailable
--------------------------------------------
Drive Letter: C
  Available Space: 49,298,620,416 bytes
  Drive Type: Fixed
  File System: NTFS
  Free Space: 49,298,620,416 bytes
  Is Drive Ready?: Yes
  Drive Path: C:
  Root Folder: C:\
  Drive Serial Number: 350880761
  Drive Share Name: Unavailable
  Total Size of Drive: 61,483,933,696 bytes
  Volume Name of Drive: Dezii
--------------------------------------------
Drive Letter: D
  Drive Type: CD ROM
  Is Drive Ready?: No
  Drive Path: D:
  Drive Share Name: Unavailable
--------------------------------------------
Drive Letter: E
  Drive Type: CD ROM
  Is Drive Ready?: No
  Drive Path: E:
  Drive Share Name: Unavailable
--------------------------------------------
Drive Letter: F
  Available Space: 10,195,968 bytes
  Drive Type: Fixed
  File System: FAT
  Free Space: 10,195,968 bytes
  Is Drive Ready?: Yes
  Drive Path: F:
  Root Folder: F:\
  Drive Serial Number: -2137813243
  Drive Share Name: Unavailable
  Total Size of Drive: 32,472,576 bytes
  Volume Name of Drive: FlashDisk
--------------------------------------------
--------------------------------------------
Drive Letter: C (Single Drive)
  Available Space: 49,298,620,416 bytes
  Drive Type: Fixed
  File System: NTFS
  Free Space: 49,298,620,416 bytes
  Is Drive Ready?: Yes
  Drive Path: C:
  Root Folder: C:\
  Drive Serial Number: 350880761
  Drive Share Name: Unavailable
  Total Size of Drive: 61,483,933,696 bytes
  Volume Name of Drive: Dezii
--------------------------------------------

From: https://bytes.com/topic/access/insights/765400-microsoft-scripting-runtime-1-a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值