用 VB 打开任意盘(硬盘/U盘/光盘)的文件.

原创 2003年10月08日 00:07:00

在程序打包移植的时候,需要用到 光盘/U盘 。在不知道机子上的光盘的盘符是多少,或不知道盘符的类别和盘符的总数的话。

......... 可以用如下方法来判断 .........

要用到的 API 描述:

返回机子上的所有盘符

GetLogicalDriveStrings     

VB声明
Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
说明
获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
返回值
Long,装载到lpBuffer的字符数量(排除空中止字符)。如缓冲区的长度不够,不能容下路径,则返回值就变成要求的缓冲区大小。零表示失败。会设置GetLastError
参数表
参数 类型及说明
nBufferLength Long,lpBuffer字串的长度
lpBuffer String,用于装载逻辑驱动器名称的字串。每个名字都用一个NULL字符分隔,在最后一个名字后面用两个NULL表示中止(空中止)

 

不同的盘类型可以用 GetDriveType 来判断.

GetDriveType

VB声明
Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
说明
判断一个磁盘驱动器的类型
返回值
Long,如驱动器不能识别,则返回零。如指定的目录不存在,则返回1。如执行成功,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE, DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM 或 DRIVE_RAMDISK
参数表
参数 类型及说明
nDrive String,包含了驱动器根目录路径的一个字串

 

如下用打开光盘指定的里的文件做例子:

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

 

Private Sub Form_Click()

    Dim StrDrive As String           '盘符串(A:/ C:/ D:/...)

    Dim DriveID As String            '盘符(:A:/)

    StrDrive = String(100, Chr$(0))  '初始化盘符串

    Call GetLogicalDriveStrings(100, StrDrive) '返回盘符串

    Dim i As Integer

   '返回光盘盘符到数组

    For i = 1 To 100 Step 4             '注意这里是4

      DriveID = Mid(StrDrive, i, 3)  '枚举盘符

      If DriveID = Chr$(0) & Chr(0) & Chr(0) Then Exit For '没有盘符,即时退出循环

 

      If GetDriveType(DriveID) = 5 Then Call ShellPro(DriveID)

      '如果枚举到的盘是CD-ROM,转到 ShellPro 子程序

    Next i

End Sub

 

'子程序:::::打开文件

Sub ShellPro(DrivePro As String)

 

 On Error GoTo Err_File:

    If Not IsEmptyCDROM(DrivePro) Then

        Shell (DrivePro & "Hello.exe")   '打开文件路径

        Unload Me

        End  '并结束本程序

    Else

        Debug.Print "CD-ROM is Empty"

    End If

Err_File:

   If Err.Description = "错语的文件名或号码" Then Exit Sub

End Sub

 

Function IsEmptyCDROM(sDrive As String)

     Dim s

    

    On Error GoTo ErrHandle

     s = Dir(sDrive + "*.*")

     IsEmptyCDROM = False

     Exit Function

ErrHandle:

     IsEmptyCDROM = True

End Function

 

注:以上代码可随意调用,修改... :)

UltraISO 帮你把U盘当光盘用

UltraISO是款功能强大的光盘工具,官方对其的概括是Handle CD and DVD Images with Ease! ,对我们就是要让处理CD和DVD镜像变得简单。现在这款软件的最新版本是...
  • WYHuan1030
  • WYHuan1030
  • 2011年04月20日 10:23
  • 5813

FreeBSD挂截U盘和光盘

//挂载U盘 mkdir /media/usb mount -t msdosfs /dev/da1s4 /media/usb umount /media/usb      //卸载 //挂载光盘 ...
  • SysProgram
  • SysProgram
  • 2016年08月27日 16:27
  • 2072

ISO光盘镜像导入到U盘的方法

讲到U盘安装,网友肯定会提出疑问,如何制作U盘的系统安装盘呢,下面为大家介绍一种超简单的U盘启动盘制作方法,大家一看都会,所需要的只是一个小软件(UltraISO),空间 用UltraISO制作高兼...
  • liuzx32
  • liuzx32
  • 2013年07月04日 11:17
  • 1509

Linux下挂载U盘、ISO、光盘、rpm

1、挂载U盘。 1)将U盘连接到虚拟机后,使用fdisk-l  (注意,这是list单词的首字母l)命令查看当前U盘的设备符号。 2)创建目录/mnt/usb,以备后续作为挂载点使用。 ...
  • hs2589758
  • hs2589758
  • 2017年03月10日 13:34
  • 611

无需u盘和光盘安装linux

今天折腾linux引导的时候发现一个不用任何移动介质的linux安装方法,即直接在硬盘中启动安装系统。 1.首先下载一个easyBCD。进入“添加新条目”选项选择“NeoGrub”条目,然后选择“添...
  • yym951376975
  • yym951376975
  • 2013年12月19日 19:56
  • 1604

打开U盘时出现“使用驱动器 X:中的光盘之前需要将其格式化。”字样

今天打开U盘时出现如下情况,吓死宝宝了,格式化!!!里面还有好多数据嘞,幸好最终找到方法解决了这个问题。 解决方法: 1.下载DiskGenius软件 2.工具->搜索已丢失分区(重建分区):不...
  • qq_33414271
  • qq_33414271
  • 2017年11月13日 12:54
  • 264

打开U盘,出现使用驱动器X:中的光盘之前需要将其格式化 数据恢复方法

有时因为我们错误的拨U盘
  • u011817264
  • u011817264
  • 2014年08月30日 10:16
  • 4462

VB 监听U盘插入并拷贝U盘内容

Set fso = CreateObject("Scripting.FileSystemObject")Dim state Dim driver, fromPath, toPathstate = 0 ...
  • u011354613
  • u011354613
  • 2016年04月19日 10:36
  • 338

VB:如何检测到U盘的插拔(源代码)

听说现在网络上流传着一些能实时检测到U盘插拔消息并能在其插入后伺机拷贝其中文档资料的恶意程序,而日前在CSDN论坛也看到有网友询问这类程序的实现原理,为此我想通过一个简单的VB程序演示一下核心操作过程...
  • southmen
  • southmen
  • 2015年04月01日 22:32
  • 817

u盘为空,打开属性可以看到有文件,但是打开目录却看不到文件,即时是显示了隐藏文件。

解决方法: 1. 在控制面板-
  • u014403825
  • u014403825
  • 2014年11月21日 23:56
  • 2445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用 VB 打开任意盘(硬盘/U盘/光盘)的文件.
举报原因:
原因补充:

(最多只允许输入30个字)