Option Explicit
'-------------获取光驱的API申明--------------------
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Const DRIVE_CDROM = 5
Private Sub Form_Load()
If VB.App.PrevInstance = True Then
End
End If
' 获取光驱的盘符
Dim i As Integer
Dim DriveStrings As String
Dim nBuffer As String * 200
Dim GetDrive As Long
Dim DriveType As Long
Dim tmpCDROM As String
GetDrive = GetLogicalDriveStrings(Len(nBuffer), nBuffer)
'nBuffer为获取到的驱动器列表
On Error GoTo errA
For i = 1 To Len(nBuffer)
DriveStrings = Mid$(nBuffer, i, 1)
If DriveStrings >= "A" And DriveStrings <= "Z" Then
DriveType = GetDriveType(DriveStrings & ":/")
If DriveType = DRIVE_CDROM Then
tmpCDROM = DriveStrings & ":"
If Trim(Dir(tmpCDROM & "math.exe")) = "math.exe" Then
myCDROM = DriveStrings & ":"
End If
errB:
End If
End If
Next
If myCDROM = "" Then
MsgBox "请将光盘插入光驱!", vbInformation, ""
End
End If
Exit Sub
errA:
tmpCDROM = "no-cd"
Resume errB
End Sub
'-------------获取光驱的API申明--------------------
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Const DRIVE_CDROM = 5
Private Sub Form_Load()
If VB.App.PrevInstance = True Then
End
End If
' 获取光驱的盘符
Dim i As Integer
Dim DriveStrings As String
Dim nBuffer As String * 200
Dim GetDrive As Long
Dim DriveType As Long
Dim tmpCDROM As String
GetDrive = GetLogicalDriveStrings(Len(nBuffer), nBuffer)
'nBuffer为获取到的驱动器列表
On Error GoTo errA
For i = 1 To Len(nBuffer)
DriveStrings = Mid$(nBuffer, i, 1)
If DriveStrings >= "A" And DriveStrings <= "Z" Then
DriveType = GetDriveType(DriveStrings & ":/")
If DriveType = DRIVE_CDROM Then
tmpCDROM = DriveStrings & ":"
If Trim(Dir(tmpCDROM & "math.exe")) = "math.exe" Then
myCDROM = DriveStrings & ":"
End If
errB:
End If
End If
Next
If myCDROM = "" Then
MsgBox "请将光盘插入光驱!", vbInformation, ""
End
End If
Exit Sub
errA:
tmpCDROM = "no-cd"
Resume errB
End Sub
本代码示例使用Visual Basic实现,通过调用Windows API函数来检测系统中光驱的存在及其盘符,并进一步检查特定文件是否存在。该示例适用于需要读取光盘上文件的应用程序。

374

被折叠的 条评论
为什么被折叠?



