Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495998
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:48:47

下载本文示例代码
  你肯定问过这个问题:我如何编程实现自动弹出和关闭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);beginwith MediaPlayer1 doif (MediaPlayer1.Mode = mpOpen) thenmciSendCommand(MediaPlayer1.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0)elsemciSendCommand(MediaPlayer1.DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);end;  注意,我们使用了mciSendCommand函数,在Windows中,每个东西都是被消息控制,在设备控制方面,mciSnedCommand与windows的WndProc非常相似,都象是一个消息分发器,提供给设备了消息类型、消息标志、消息参数以及你所使用的方法。如果您想了解更详细的信息的话,请您参阅帮助文件。   你肯定问过这个问题:我如何编程实现自动弹出和关闭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);beginwith MediaPlayer1 doif (MediaPlayer1.Mode = mpOpen) thenmciSendCommand(MediaPlayer1.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0)elsemciSendCommand(MediaPlayer1.DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);end;  注意,我们使用了mciSendCommand函数,在Windows中,每个东西都是被消息控制,在设备控制方面,mciSnedCommand与windows的WndProc非常相似,都象是一个消息分发器,提供给设备了消息类型、消息标志、消息参数以及你所使用的方法。如果您想了解更详细的信息的话,请您参阅帮助文件。 下载本文示例代码


编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘编程实现自动弹出和关闭CD托盘
阅读(106) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~