用户名: 密码: 验证码:           网站地图  高级搜索  RSS订阅  收藏本站
您的位置:主页 > 程序编程 > Delphi >

编程实现自动弹出和关闭CD托盘

[ 来源:yesky | 作者:wayne | 更新日期:2008-3-21 09:49:34 | 人气: | 评论 0 条 ]

  你肯定问过这个问题:我如何编程实现自动弹出和关闭CD托盘,而不必我用手按开关?好,本文就想谈一谈这个问题。

  你们一定对Delphi的TMediaPlayer组件比较熟悉,它是一个相当出色的多用途的多媒体组件,但是美中不足的是:假如CDROM光驱的仓门打开就不能自动关闭。而且不幸的是,TMediaPlayer的方法和属性中没有解决这个问题的办法,所以我们不得不求助于Windows API,具体一些就是使用MMSystem.pas文件,另外一件需要注重的事是:我们可以单独调用Windows API函数,但是TMediaPlayer做了一些内部处理,所以我们就不必担心我们是否使用了组件。所以本例中使用了TMediaPlayer。

  第一步 新建一个工程,然后把一个TMediaPlayer 和 TButton拖到它上面。

  第二步 在窗体的uses语句中添加一个MMSystem声明。

  第三步 设置TMediaPlayer的AutoOpen属性为真,设置DeviceType属性为dtCDAudio,除此之外我们还可以关闭EnabledButtons属性的btEject选项,因为我们将使用代码来完成这个功能。

  第四步 在某些应用程序中,我还要使用到数据CD,所以我也要设置Visible属性为假,让我的按钮做开关仓门的动作。

  第五步 就是在按钮的Onclick 事件中添加下面的代码: 文章来源于www.jc567.cn

procedure TForm1.Button2Click(Sender: TObject);
begin
with MediaPlayer1 do
if (MediaPlayer1.Mode = mpOpen) then
mciSendCommand(MediaPlayer1.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0)
else
mciSendCommand(MediaPlayer1.DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
end;

  注重,我们使用了mciSendCommand函数,在Windows中,每个东西都是被消息控制,在设备控制方面,mciSnedCommand与windows的WndProc非常相似,都象是一个消息分发器,提供给设备了消息类型、消息标志、消息参数以及你所使用的方法。假如您想了解更具体的信息的话,请您参阅帮助文件。



Tags:编程实现自动弹出和关闭CD托盘
您的评论
用户名: 新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为