用API函数控制光驱的开关

2016-02-19 20:16 16 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的用API函数控制光驱的开关,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

使用API函数CDdoor来控制光驱门的开和关程序十分简单,由于CDdoor函数自身包含了对异常错误的处理机制,因此这个程序的通用性很高,你可以把这段代码移植到你的程序中,实现某些多媒体播放器所常用的开关光驱的功能。
  
  CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数,我们只须先加入如下的声明后就能引用这个API函数:
  
  ->PrivateDeclareFunctionCDdoorLib"winmm.dll"Alias"mciSendStringA"_
   (_
   ByVallpstrCommandAsString,_  String,这是控制命令参数
   ByVallpstrReturnStringAsString,_  String,这是返回值
   ByValuReturnLengthAsLong,_   Long,返回值长度参数
   ByValhwndCallbackAsLong_
   )AsLong->
  
  引用的语法是:
  
  ->CallCDdoor("setCDAudiodoorclosed",0,0,0)  用以关闭光驱门
  
  CallCDdoor("setCDAudiodooropen",0,0,0)   用以打开光驱门->
  程序中使用了一个布尔型变量来标示当前光驱门开与关的状态。
  
  如果配合检测光驱是否存在的函数一起使用,此程序的通用性会更高。而关于检测驱动器信息的函数GetDriveType,GetLogicalDrives,我们会在另外一个实例中介绍。
  
  为了学习方便,以下提供了源代码并附详细的中文注释:
  
  -> '-------------------------------------------
  '  利用API函数控制光驱的开和关
  '-------------------------------------------
  '程序说明:
  '本例使用API函数CDdoor来控制光驱门的开和关程序十分简单,由于CDdoor函数自身包含了对异常错误的处理机制,因此这个程序的通用性很高,你可以把这段代码移植到你的程序中,实现某些多媒体播放器所常用的开关光驱的功能。
  '-------------------------------------------
  
  OptionExplicit
  '说明:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数
  PrivateDeclareFunctionCDdoorLib"winmm.dll"Alias"mciSendStringA"_
  (_
  ByVallpstrCommandAsString,_
  ByVallpstrReturnStringAsString,_
  ByValuReturnLengthAsLong,_
  ByValhwndCallbackAsLong_
  )AsLong
  
  'CDOpen用来标示光驱开与关的状态
  DimCDOpenAsBoolean
  
  PrivateSubCommand1_Click()
  OnErrorResumeNext
  
  '如果关闭则打开,并且按钮做相应变化
  IfCDOpen=FalseThen
  CallCDdoor("setCDAudiodooropen",0,0,0)
  CDOpen=True
  Command1.Caption="点击关闭光驱"
  Else
  '否则关闭
  CallCDdoor("setCDAudiodoorclosed",0,0,0)
  CDOpen=False
  Command1.Caption="点击打开光驱"
  EndIf
  EndSub
  
  PrivateSubForm_Load()
  CDOpen=False
  CallCDdoor("setCDAudiodoorclosed",0,0,0)
  EndSub->->

来源:http://www.tulaoshi.com/n/20160219/1623190.html

延伸阅读
源代码: PrivateSubCommand1_Click() Dimback back=mciSendString&("CLOSENN",0,0,0) EndSub PrivateSubCommand2_Click() Dimback back=mciSendString&("OPEN" App.Path "TEST.mid" "TYPESEQUENCERALIASNN",0&,0,0) back=mciSendString&("PLAYNNFROM0",0&,0,0) R=mciSendString&...
WNetAddConnection创建同一个网络资源的永久性连接WNetAddConnection2创建同一个网络资源的连接WNetAddConnection3创建同一个网络资源的连接WNetCancelConnection结束一个网络连接WNetCancelConnection2结束一个网络连接WNetCloseEnum结束一次枚举操作WNetConnectionDialog启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog启...
在Windows资源浏览器中,可在DVD/CD光驱图标上单击鼠标右键,选择"弹出"来打开光驱仓门,你可能也发现了,菜单中并没有"关闭"命令来关闭光驱。下面,就让我们用程序来控制打开、关闭光驱。 程序的主要工作部分为CD_OpenClose(BOOL bOpen, TCHAR cDrive)函数: //cDrive是光驱盘符,或者0x01为默认驱动器。 //例如:...