如何用VB检测光驱的状态

想用VB做一个软件,在关机的时候能够检测光驱是否打开,如果打开的话阻止关机并发出提示,不知道怎么检测光驱的状态是打开还是关闭?不是打开或关闭光驱,是检测光驱的状态!!!... 想用VB做一个软件,在关机的时候能够检测光驱是否打开,如果打开的话阻止关机并发出提示,不知道怎么检测光驱的状态是打开还是关闭?
不是打开或关闭光驱,是检测光驱的状态!!!
展开
 我来答
冷以筠gS
2010-01-09 · TA获得超过1650个赞
知道小有建树答主
回答量:996
采纳率:0%
帮助的人:754万
展开全部
' 程序中使用了一个布尔型变量来标示当前光驱门开与关的状态。

' 如果配合检测光驱是否存在的函数一起使用,此程序的通用性会更高。而
'关于检测驱动器信息的函数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
'---------------------------------------------
'用cdopen判断一下吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式