中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]仍未解决……再问光驱状态如何确定(VBS)
作者:
标题: [求助]仍未解决……再问光驱状态如何确定(VBS) 上一主题 | 下一主题
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『楼 主』:  [求助]仍未解决……再问光驱状态如何确定(VBS)

请问各位高人
如何以VBS确定光驱是否弹出

小弟之前也看过不少帖子了,还是没有找到好的解决办法
大多数的办法只能判断光驱是否可用(也就是其中有无光盘)
如 objDrive.IsReady 之类
这样将会把光驱弹出与光驱中无盘视为同样的状态

另外,像下面这段代码
Set wmp = CreateObject("WMPlayer.OCX.7")
Set cdrom = wmp.cdromCollection
cdrom.Item(0).eject
cdrom.Item(0).eject
其中的cdrom.Item(*)是否还支持其它属性或方法?
问得更远一点,像"WMPlayer.OCX.7"这样的对象,VBS和WSH文档里都没有提,应该去哪里查看相关资料?

2009-8-7 00:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『第 2 楼』:  

如果有相应的event也行,比如WMI的event query,不过暂未查到相关资料

2009-8-7 00:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 3 楼』:  

事件?

打开和关闭是状态。。。所以查不到。




貌似WMI和VBS都没有直接实现的参考。

3方倒是有。。。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-8-7 02:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『第 4 楼』:  

事件a2b
状态a ————————> 状态b

事件b2a
状态a <———————— 状态b

我的意思是查询事件a2b或b2a,如上图所示

刚刚翻了一些资料,似乎可以用__instanceModificationEvent来抓Win32_CDROMDrive
我试了一下,还是不能区分弹出状态和无盘状态

另外,原来PrimalScript里面有COM Objects、WMI Classes、.NET Framework的资料,比较全,但没有说明文字,不过已经足够让人看明白cdrom.Item(0).eject这种写法的由来了
可惜根据资料显示,只有eject方法,没有insert………… 至于为什么调用两次eject就成了insert,窃以为……这个……很神奇

2009-8-7 05:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

cdromCollection

Function Item(ByVal lIndex As Long) As IWMPCdrom

Returns the CDROM object at the given index

返回一个 IWMPCdrom对象
它有2个属性
Property driveSpecifier As String

Returns the CDROM drive specifier

Property Playlist As IWMPPlaylist

Returns the playlist of tracks currently in the CDROM drive

一个过程:
Sub eject

Eject the CD in the CDROM drive

翻译的话是弹出。

如果你的光驱是关闭的话,执行一次eject就会弹出。
如果你的光驱是打开的话,执行一次eject不会弹出。

执行2次操作:
如果门是打开状态,第一次执行弹出不变,第二次关闭光驱门。
如果门是关闭状态,第一次打开门,即弹出,第二次执行关闭门。

所以执行2次一定是insert……
但是,如果门是关闭状态,会先开再关。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-8-7 06:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: