您现在的位置:软界网技术中心软件开发VB/VB.NET > 技术显示
用API函数控制光驱的开关
2001-10-24 9:43:00   网友评论       阅读次数 点此评论
   
  使用API函数CDdoor 来控制光驱门的开和关程序十分简单,由于 CDdoor 函数自身包含了对异常错误的处理机制,因此这个程序的通用性很高,你可以把这段代码移植到你的程序中,实现某些多媒体播放器所常用的开关光驱的功能。

  CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数,我们只须先加入如下的声明后就能引用这个API函数:

Private Declare Function CDdoor Lib 'winmm.dll' Alias 'mciSendStringA' _
   ( _
   ByVal lpstrCommand As String, _       String,这是控制命令参数
   ByVal lpstrReturnString As String, _    String,这是返回值
   ByVal uReturnLength As Long, _       Long,返回值长度参数
   ByVal hwndCallback As Long _
   ) As Long
  

  引用的语法是:

Call CDdoor('set CDAudio door closed', 0, 0, 0)  用以关闭光驱门

Call CDdoor('set CDAudio door open', 0, 0, 0)   用以打开光驱门

  程序中使用了一个布尔型变量来标示当前光驱门开与关的状态。

  如果配合检测光驱是否存在的函数一起使用,此程序的通用性会更高。而关于检测驱动器信息的函数GetDriveType,GetLogicalDrives,我们会在另外一个实例中介绍。

  为了学习方便,以下提供了源代码并附详细的中文注释:

 '-------------------------------------------
  '  利用API函数控制光驱的开和关
  '-------------------------------------------
  '程序说明:
  ' 本例使用API函数 CDdoor 来控制光驱门的开和关程序十分简单,由于 CDdoor 函数自身包含了对异常错误的处理机制,因此这个程序的通用性很高,你可以把这段代码移植到你的程序中,实现某些多媒体播放器所常用的开关光驱的功能。
'-------------------------------------------

Option Explicit
'说明:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数
Private Declare Function CDdoor Lib 'winmm.dll' Alias 'mciSendStringA' _
( _
ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, _
ByVal hwndCallback As Long _
) As Long

'CDOpen用来标示光驱开与关的状态
Dim CDOpen As Boolean

Private Sub Command1_Click()
On Error Resume Next

'如果关闭则打开,并且按钮做相应变化
If CDOpen = False Then
Call CDdoor('set CDAudio door open', 0, 0, 0)
CDOpen = True
Command1.Caption = '点击关闭光驱'
Else
'否则关闭
Call CDdoor('set CDAudio door closed', 0, 0, 0)
CDOpen = False
Command1.Caption = '点击打开光驱'
End If
End Sub

Private Sub Form_Load()
CDOpen = False
Call CDdoor('set CDAudio door closed', 0, 0, 0)
End Sub
 
'); '); '); ');
');
');}
');
');}
文章阅读排行
周排行
月排行
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml    
');  
      来源: 作者:
 
【评论查看】