如何使光驱弹出后收回来? (50分)

  • 主题发起人 主题发起人 iapollo
  • 开始时间 开始时间
I

iapollo

Unregistered / Unconfirmed
GUEST, unregistred user!
以下代码可以弹出光驱,但如何使弹出的光驱收回来?
<SCRIPT language=VBScript>
<!--

Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then

For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next ' cdrom
End If

-->
</SCRIPT>
 
笔记本光驱不会自已合上的。必需要用手堆进去。
 
程云(2000-12-18 14:48)
弹出、关闭CD-ROM驱动器


如果你想做一个CD播放器的话,那本技巧一定少不了。这是一个控制CD-ROM驱动器门弹出和关闭的方法,首先需要在uses部分加入mmsystem,接着增加两个Tbutton按钮,在按钮事件里写入下列语句,记住在调用完毕后一定要显示或判断returnstring,要不程序将出错:
procedure TForm1.Button1Click(Sender: Tobject);
var returnstring:pchar;
begin

//弹出
returnstring:='驱动器打开错误';
mciSendString('set CDAudiodo
or open', returnstring, 127, 0);
label1.Caption :=returnstring;
end;


procedure TForm1.Button2Click(Sender: Tobject);
var returnstring:pchar;
begin

//关闭
returnstring:='驱动器关闭错误';
mciSendString('set CDAudiodo
or closed', returnstring, 127, 0);
label1.Caption :=returnstring;
end;



 
{但出的控制一个光驱}
mciSendString('Set cdaudiodo
or open wait', nil, 0, handle);

mciSendString('Set cdaudiodo
or closed wait', nil, 0, handle);


{---------------------------------------------------------------}
{可以控制多个光驱}
uses
mmSysTem;

procedure OperateCDRom(AOperate: Integer;
ADrive: Char);
var
Params: MCI_OPEN_PARMS;
DriveName: array[0..3] of Char;
begin

DriveName := '?:';
DriveName[0] := ADrive;

ZeroMemory(@Params, SizeOf(MCI_OPEN_PARMS));

Params.lpstrDeviceType := PChar(MCI_DEVTYPE_CD_AUDIO);
Params.lpstrElementName := DriveName;

if mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE or MCI_OPEN_TYPE_ID
or MCI_OPEN_ELEMENT or MCI_OPEN_SHAREABLE, Cardinal(@Params)) = 0 then

begin

if AOperate = 0 then

mciSendCommand(Params.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0)
else

mciSendCommand(Params.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);

mciSendCommand(Params.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
end;

end;
 
谢谢上面两位!我问的不是在delphi中的,我问的是在VBScript脚本中的光驱弹出和收回!
。。。。
colCDROMs.Item(i).Eject //Eject是弹出,收回是什么?
。。。。
 
还是你的代码就可以解决问题。
<SCRIPT language=VBScript>
<!--

Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then

For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next ' cdrom
'添加了一句
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next ' cdrom

End If

-->
</SCRIPT>
 
简单,用手推一下
 
2yzhshi:十分感谢!
2seagod007:大富翁不是来混的!
 
后退
顶部