View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
RB Smissaert RB Smissaert is offline
external usenet poster
 
Posts: 2,452
Default Can VBA issue a command to eject a CD?

This does the default audio drive.
You can specify the drive letter like this:

Option Explicit
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

Sub OpenCDDrive(Optional strDriveLetter As String)

If Len(strDriveLetter) = 0 Then
mciSendString "Set CDAudio Door Open", 0&, 0, 0
Else
mciSendString "open " & strDriveLetter & _
": type CDAudio alias drive" & strDriveLetter, 0&, 0, 0
mciSendString "set drive" & strDriveLetter & " door open", 0&, 0, 0
End If

End Sub

Sub CloseCDDrive(Optional strDriveLetter As String)

If Len(strDriveLetter) = 0 Then
mciSendString "Set CDAudio Door Closed", 0&, 0, 0
Else
mciSendString "open " & strDriveLetter & _
": type CDAudio alias drive" & strDriveLetter, 0&, 0, 0
mciSendString "set drive" & strDriveLetter & " door closed", 0&, 0, 0
End If

End Sub


Sub test()

OpenCDDrive "D"

End Sub


RBS


"Don Wiss" wrote in message
...
Where are you setting which drive to open/close?

On Sun, 4 Mar 2007 22:12:37 -0000, "RB Smissaert"
wrote:

Try this:

Option Explicit
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

Sub OpenCDDrive()

mciSendString "Set CDAudio Door Open", 0&, 0, 0

End Sub


Sub CloseCDDrive()

mciSendString "Set CDAudio Door Closed", 0&, 0, 0

End Sub


RBS



"Don Wiss" wrote in message
. ..
I have a VBA program that reads a file created from a DVD/CD. I then by
hand eject the disc. Can VBA issue a command to eject the disc?

Don <www.donwiss.com (e-mail link at home page bottom).