科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件编程实现自动弹出和关闭CD托盘

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

作者:wayne 来源:yesky 2007年11月1日

关键字: 编程 关闭 CD托盘

  • 评论
  • 分享微博
  • 分享邮件
你肯定问过这个问题:我如何编程实现自动弹出和关闭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 事件中添加下面的代码:

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非常相似,都象是一个消息分发器,提供给设备了消息类型、消息标志、消息参数以及你所使用的方法。如果您想了解更详细的信息的话,请您参阅帮助文件。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章