要在Delphi程序中控制CD-ROM的弹出和关闭,可以利用MMSystem.pas单元的MCI(Media Control Interface)函数。有2个函数可以达到同样的效果。一个是mciSendCommand函数,另一个是mciSendString函数。下面分别用这2个函数写的OpenCDDrive函数。
1、使用mciSendCommand:
functionOpenCDDrive(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_TYPEorMCI_OPEN_TYPE_ID;
ifDriveName<>#0then
begin
op.lpstrElementName:=PChar(DriveName+':');
flags:=flagsorMCI_OPEN_ELEMENT;
end;
Result:=mciSendCommand(0,MCI_OPEN,flags,LongWord(@op))=0;
ifnotResultthenExit;
ifIsOpenthen
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:
functionOpenCDDrive(IsOpen:Boolean;DriveName:char=#0):Boolean;
var
s:string;
begin
ifIsOpenthens:='open'
elses:='closed';
ifDriveName=#0then
Result:=mciSendString(PChar('setcdaudiodoor'+s),nil,0,0)=0
else
begin
Result:=mciSendString(PChar('open'+DriveName+':typecdaudioaliascdrom'),nil,0,0)=0;
ifResult then
begin
mciSendString(PChar('setcdromdoor'+s),nil,0,0);
mciSendString('closecdrom',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');
如有错误请指正:maozefa@hotmail.com
分享到:
相关推荐
An example of code that shows how Eject CD-ROM with the Windows DLL KERNEL32.DLL .
窗口中的弹出式右键菜单-delphi PopupMenu源码, procedure TForm1.Button1Click(Sender: TObject); var Poin:TPoint; begin Poin := Point(Button1.Left,Button1.Top Button1.Height); Poin := ...
delphi程序抓取报错信息不再弹出报错窗口,弹出报错信息很尴尬,现在不用怕了,把错误信息保存到日志文件,后台自己看到错误慢慢修改,增加用户体验。
在DELPHI应用程序中使用DLL 为DELPHI应用程序制作安装程序 用注册表对Delphi程序进行加密 在Delphi程序中操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用...
在DELPHI应用程序中使用DLL 为DELPHI应用程序制作安装程序 用注册表对Delphi程序进行加密 在Delphi程序中操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用...
电脑硬件信息 硬盘 CD-ROM USB 添加自己的属性 用C#和WMI获取逻辑驱动器详细信息 获取磁盘信息的API函数来分别获取像卷标、序列号以及剩余空间等信息 .Net框架System.Management 命名空间的相关类和WMI编程
delphi自动弹出式提示窗体,可以像QQ一样弹出提示框的哦
Delphi 弹出式对话框总结,希望能有需要的看一下,帮助挺大
Delphi 程序出错时的弹出消息框仿真,本来是无意遇到的这种提示框,后来做出了这种效果,曾经被这种对话框搞晕过。
《Delphi程序设计基础教程》-曹静-电子教案,提供给delphi初学者
DELPHI 学习--------带声音提示的定时器。含mp3播放模块
内容简介:Delphi是一种深受广大程序开发人员喜爱的快速开发工具,其...《Delphi 2007程序设计教程》内容翔实,实例丰富,浅显易懂,图文并茂,知识点难易结合,可使学生更容易掌握Delphi 2007程序设计的知识和技巧。
一个早期的Delphi弹出窗口屏蔽程序,前些年写的,现在都有360了,这些软件也慢慢淡出了,不过作为Delphi程序员,各方面的技巧都要涉及到,本程序主要是屏蔽来自多种软件、插件的广告弹出窗口,可对系统免疫,部分...
《Delphi程序设计基础》-李文池-电子教案-3956
Delphi 程序控制关闭显示器,不过我很好奇Delphi真能关闭显示器么?如果是用Delphi截断视频信号的输出,让显示器黑屏,这倒是有可能哦,但是让Delphi直接关闭显示器,有点不太可能吧?看了看代码,原来是这样: ...
实现Windows XP/7等操作系统桌面右下角弹出类似MSN的popup提示框,可定时自动关闭,自动叠加显示,自定义背景图片等。使用了DELPHI盒子(2ccc)的MSNPopup 5.0的组件,修改了背景颜色(图片)不能填满窗体的bug。压缩包...
DelphiXE 10.2编写Android程序 ,通过蓝牙接口控制程序,能扫描蓝牙模块,并且连接HC-08C 蓝牙模块,与该模块进行数据交互。
Delphi XE7实现的任意位置弹出菜单
DELPHI程序结构和用户界面设计 DELPHI程序结构和用户界面设计