找回密码
 加入
搜索
查看: 4556|回复: 24

判断光驱状态

[复制链接]
发表于 2008-12-26 21:35:20 | 显示全部楼层 |阅读模式
想写一个双击程序便能打开光驱,再双击便能关闭光驱。如此反复
$driv = DriveGetDrive("cdrom")
CDTray($driv[1],"open")

应该怎样判断光驱现在是打开还是关闭状态?从而执行打开光驱或关闭光驱

[ 本帖最后由 风行者 于 2009-1-29 00:50 编辑 ]
发表于 2008-12-26 22:20:56 | 显示全部楼层
你无论他是打开还是关闭,都给来先来一句CLOSE 好了啊
 楼主| 发表于 2008-12-26 22:27:40 | 显示全部楼层
不行啊,有没有其他方法啊
发表于 2008-12-26 23:06:54 | 显示全部楼层
我机器上没光驱 没办法测试
DriveStatus
没关上 应该是返回NOTREADY 你试试
 楼主| 发表于 2008-12-27 00:01:50 | 显示全部楼层
还是不行没有反应,无论关闭或打开返回的字符串都是NOTREADY

[ 本帖最后由 风行者 于 2008-12-27 00:03 编辑 ]
发表于 2008-12-27 11:35:46 | 显示全部楼层
测试的确返回NOTREADY
发表于 2008-12-27 13:32:38 | 显示全部楼层
原帖由 大绯狼 于 2008-12-27 11:35 发表
测试的确返回NOTREADY


本是过路人,看到楼上签名,特地回帖
发表于 2008-12-27 15:08:56 | 显示全部楼层
NOTREADY 通常是未含任何媒体的软驱或CD驱动器。
发表于 2008-12-27 15:10:48 | 显示全部楼层
一个打开,一个关闭好了!
 楼主| 发表于 2008-12-27 17:17:42 | 显示全部楼层
在网上搜索都是利用API实现的,au要怎样调用API啊?好像是这个dll,winmm.dll
发表于 2008-12-27 21:27:51 | 显示全部楼层
三恨老家发现的 搬过来
_CdTray("g:","Open")  ;打开光驱

_CdTray("g:","CLosed")   ;关闭光驱

Func _CdTray($Drive,$flags)

DllCall("winmm.dll", "int", "mciSendString", "str", "Open " & $Drive & " Alias Drive" & $Drive & " Type CDAudio", "int", 0, "int", 0, "int", 0)

Switch $flags

       Case  "Open"
             DllCall("winmm.dll", "int", "mciSendString", "str", "Set Drive" & $Drive & " Door Open", "int", 0, "int", 0, "int", 0)
       Case  "CLosed"
             DllCall("winmm.dll", "int", "mciSendString", "str", "Set Drive" & $Drive & " Door Closed", "int", 0, "int", 0, "int", 0)
EndSwitch
    
EndFunc 


[ 本帖最后由 sxd 于 2008-12-28 18:21 编辑 ]
 楼主| 发表于 2008-12-28 21:52:09 | 显示全部楼层
上面的打开光驱后不够一秒就自动关闭了,真的没办法吗?
发表于 2008-12-28 22:36:08 | 显示全部楼层
搜索了一下,说真的光驱的打开或者关闭状态并不好判断。。。

有个API可以判断光驱内是否有光盘的,可以这样将就判断下咯。。。
不过感觉还是不完美。
发表于 2008-12-29 14:44:45 | 显示全部楼层
原帖由 风行者 于 2008-12-28 21:52 发表
上面的打开光驱后不够一秒就自动关闭了,真的没办法吗?


没办法,代码也看不明白!LZ你
发表于 2008-12-29 17:27:36 | 显示全部楼层
原帖由 liongodmien 于 2008-12-29 14:44 发表


没办法,代码也看不明白!LZ你


不是看不明白 是没明白的看吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 02:09 , Processed in 0.078750 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表