如何控制光驱的弹出,关闭及其获取其状态
编号:QA000310
建立日期: 1999年1月7日 最后修改日期:2000年3月23日
所属类别:
Hu Minghu:
请问在Windows编程中如何控制光驱的弹出,关闭及其获取其状态?
回答:
使用MCI命令可以做到这一点。
可以用mciSendString函数,下面是一段VB的例子。
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 Sub Command1_Click()
mciSendString "Set CDAudio Door Open Wait", 0&, 0, 0 ' 弹出
End Sub
Private Sub Command2_Click()
mciSendString "Set CDAudio Door Closed Wait", 0&, 0, 0 ' 关闭
End Sub
也可以用mciSendCommand。下面是一段Delphi程序,演示了如何控制光驱。
program cdinout;
uses mmSystem;
var
MCIO : TMCI_Open_Parms;
MCIS : TMCI_Status_Parms;
begin
MCIO.lpstrDeviceType := PChar(MCI_DEVTYPE_CD_AUDIO);
if mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE or MCI_OPEN_TYPE_ID or
MCI_OPEN_SHAREABLE, LongInt(@MCIO) )= 0 then
begin
MCIS.dwItem := MCI_STATUS_READY;
mciSendCommand(MCIO.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM
or MCI_WAIT, LongInt(@MCIS));
if MCIS.dwReturn<> 0 then
mciSendCommand(MCIO.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0)
else
mciSendCommand(MCIO.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
mciSendCommand(MCIO.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
end;
end.
相关问题:
QA000531 "如何判断光驱的仓门的状态"
QA000610 "如何支持2个以上的光驱"
此问题由李海回答。
| |
|
|
| |
|
|