查过以前的帖子,mcisendstring('set cdaudio door open wait',nil,0,handle)只适用于一个光驱的情况
解决方案 »
- 发一个TestComplete测试问题 关于IDispatch参数接口
- 好久没来D区,散200分
- 小公司的总部与分店该如何联网!?
- Dev Express中grid中的超级链接怎么加上去?
- Delphi 不写一行代码快速制作漂亮的表格,打印(预览),(欢迎回帖有分)
- 可行性?
- 软件调用windows下的tracert仅能看到ping多少,我现在想得到丢包率多少应如何处理呢?
- 怎样使程序最小化的仍能捕捉用户按下键盘中特定的按键?
- 我想用delphi将一个目标EXE中的几行16进数据全改成00怎么弄?
- 关于读写INI文件????
- 快要疯了!
- 为什么BDE 的路径不能更改? 十万火急呀...多多分都送.
uses MMSYSTEM;function OpenCd(handle: HWND; drive: String): Boolean; //打开
Var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element;
With OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Res<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
IF Res=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;function CloseCd(handle: HWND; drive: String): Boolean; //关闭
Var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element;
With OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Res<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
IF Res=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;