![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 07:01 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]仍未解决……再问光驱状态如何确定(VBS) |
| 可打印版本 576 / 4 |
| 第1楼 azziporah | 发表于 2009-08-07 00:07 |
| 初级用户 发帖 47 积分 102 | |
|
[求助]仍未解决……再问光驱状态如何确定(VBS) 请问各位高人
如何以VBS确定光驱是否弹出 小弟之前也看过不少帖子了,还是没有找到好的解决办法 大多数的办法只能判断光驱是否可用(也就是其中有无光盘) 如 objDrive.IsReady 之类 这样将会把光驱弹出与光驱中无盘视为同样的状态 另外,像下面这段代码 其中的cdrom.Item(*)是否还支持其它属性或方法? 问得更远一点,像"WMPlayer.OCX.7"这样的对象,VBS和WSH文档里都没有提,应该去哪里查看相关资料? |
|
| 第2楼 azziporah | 发表于 2009-08-07 00:36 |
| 初级用户 发帖 47 积分 102 | |
|
如果有相应的event也行,比如WMI的event query,不过暂未查到相关资料
|
|
| 第3楼 slore | 发表于 2009-08-07 02:46 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
事件?
打开和关闭是状态。。。所以查不到。 貌似WMI和VBS都没有直接实现的参考。 3方倒是有。。。 |
|
| 第4楼 azziporah | 发表于 2009-08-07 05:57 |
| 初级用户 发帖 47 积分 102 | |
|
事件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,窃以为……这个……很神奇 |
|
| 第5楼 slore | 发表于 2009-08-07 06:31 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
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…… 但是,如果门是关闭状态,会先开再关。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |