Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Enum CDROMSwitch
OpenCDROM
CloseCDROM
End Enum
Private Sub Command1_Click()
OpenCloseCDROM OpenCDROM
End Sub
Private Sub Command2_Click()
OpenCloseCDROM CloseCDROM
End Sub
' 打开/关闭CDROM
' Action 为打开/关闭CDROM的动作
Private Function OpenCloseCDROM(ByVal Action As CDROMSwitch) As Boolean
OpenCloseCDROM = mciSendString("set CDAudio door " & IIf(Action = OpenCDROM, "open", "closed"), "", 127, 0)
End Function
Option Explicit
'说明:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数
Private Declare Function CDdoor Lib "winmm.dll" Alias "mciSendStringA" _
( _
ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, _
ByVal hwndCallback As Long _
) As Long
'CDOpen用来标示光驱开与关的状态
Dim CDOpen As Boolean
Private Sub Command1_Click()
On Error Resume Next
'如果关闭则打开,并且按钮做相应变化
If CDOpen = False Then
Call CDdoor("set CDAudio door open", 0, 0, 0)
CDOpen = True
Command1.Caption = "点击关闭光驱"
Else
'否则关闭
Call CDdoor("set CDAudio door closed", 0, 0, 0)
CDOpen = False
Command1.Caption = "点击打开光驱"
End If
End Sub
Private Sub Form_Load()
CDOpen = False
Call CDdoor("set CDAudio door closed", 0, 0, 0)
End Sub
Private Sub Form_Load()
Set wmp = CreateObject("WMPlayer.OCX.7")
Set cdrom = wmp.cdromCollection
If cdrom.Count >= 1 Then '(该句用来判断你的系统中装了多少个光驱)
For z = 0 To cdrom.Count - 1
cdrom.Item(z).Eject
Next
For z = 0 To cdrom.Count - 1
cdrom.Item(z).Eject
Next
End If
End Sub