注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发Delphi → 文章内容

用Delphi程序中弹出和关闭CD-ROM

作者:用Delphi 来源:用Delphi 发布时间:2008-7-25 12:40:16

要在Delphi程序中控制CD-ROM的弹出和关闭,可以利用MMSystem.pas单元的MCI(Media Control Interface)函数。有2个函数可以达到同样的效果。一个是mciSendCommand函数,另一个是mciSendString函数。下面分别用这2个函数写的OpenCDDrive函数。

1、使用mciSendCommand:

function OpenCDDrive(IsOpen: Boolean; DriveName: char = #0): Boolean;
var
op: TMCI_Open_Parms;
flags: LongWord;
begin
FillChar(op, Sizeof(TMCI_Open_Parms), 0);
op.lpstrDeviceType := PChar(MCI_DEVTYPE_CD_AUDIO);
flags := MCI_OPEN_TYPE or MCI_OPEN_TYPE_ID;
if DriveName <> #0 then
begin
op.lpstrElementName := PChar(DriveName + ':');
flags := flags or MCI_OPEN_ELEMENT;
end;
Result := mciSendCommand(0, MCI_OPEN, flags, LongWord(@op)) = 0;
if not Result then Exit;
if IsOpen then
mciSendCommand(op.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0)
else
mciSendCommand(op.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
mciSendCommand(op.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
end;
2、使用mciSendString:

function OpenCDDrive(IsOpen: Boolean; DriveName: char = #0): Boolean;
var
s: string;
begin
if IsOpen then s := 'open'
else s := 'closed';
if DriveName = #0 then
Result := mciSendString(PChar('set cdaudio door ' + s), nil, 0, 0) = 0
else
begin
Result := mciSendString(PChar('open ' + DriveName +': type cdaudio alias cdrom'), nil, 0, 0) = 0;
if Result then
begin
mciSendString(PChar('set cdrom door ' + s), nil, 0, 0);
mciSendString('close cdrom', nil, 0, 0);
end;
end;
end;
OpenCDDrive函数有2个参数,IsOpen为True弹出CD-ROM,False关闭RD_ROM;DriveName为CD-ROM驱动器名称,缺省为#0。返回True成功,否则失败。

打开和关闭缺省CD-ROM,即第一个CD-ROM驱动器可以分别用:

OpenCDDrive(True);和OpenCDDrive(False);

使用CD-ROM驱动器名称调用可以分别为(假设CD-ROM驱动器名称为“F:”):

OpenCDDrive(True, 'F');和OpenCDDrive(False, 'F');


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved