Board logo

标题: 如何将这个VBS转BAT [打印本页]

作者: eech     时间: 2006-12-10 08:28    标题: 求关闭光驱的批处理.不知有没有

mshta "javascript:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();"

这是联盟的一位大虾写的弹出光驱的批处理.配上快捷键.超爽.但不足的是没有关闭光驱的批处理.
请教各位大虾.在不用软件的前提下.
有没有关闭光驱的批处理
作者: lxmxn     时间: 2006-12-10 08:49

  下面是VBS的,可以转换成批处理。
With CreateObject("WMPlayer.OCX.7").cdromCollection
.Item(0).eject
WScript.echo "光驱已经打开"&vbcrlf&"单击确定关闭光驱"
.Item(0).eject
End With


[ Last edited by lxmxn on 2006-12-10 at 08:50 AM ]
作者: eech     时间: 2006-12-10 09:11
哇塞.真是偶像.刚在霏凡问了.一个级别很高的朋友.对我说没有关闭批处理.这下他可没话说了
作者: electronixtar     时间: 2006-12-10 09:32
霏凡是什么啊?
作者: vkill     时间: 2006-12-10 10:45


  Quote:
Originally posted by electronixtar at 2006-12-10 09:32:
霏凡是什么啊?

论坛
作者: eech     时间: 2006-12-10 12:00    标题: 如何将这个VBS转BAT

With CreateObject("WMPlayer.OCX.7").cdromCollection
.Item(0).eject
WScript.echo "光驱已经打开"&vbcrlf&"单击确定关闭光驱"
.Item(0).eject
End With

哪位大虾行行好.教我如何转这个VBS文件转成批处理

[ Last edited by eech on 2006-12-10 at 12:01 PM ]
作者: lxmxn     时间: 2006-12-10 12:09

@echo off
echo With CreateObject("WMPlayer.OCX.7").cdromCollection>tem.vbs
echo .Item(0).eject>>tem.vbs
echo msgbox "光驱已经打开"^&vbcrlf^&"单击确定关闭光驱">>tem.vbs
echo .Item(0).eject>>tem.vbs
echo End With>>tem.vbs
cscript.exe //H:wscript //nologo tem.vbs
del tem.vbs


[ Last edited by lxmxn on 2006-12-10 at 12:41 PM ]
作者: youxi01     时间: 2006-12-10 12:13
::On Error Resume Next
echo '>nul &cls&@echo off &wscript //E:vbs "%~f0"
::With CreateObject("WMPlayer.OCX.7").cdromCollection
::.Item(0).eject
::WScript.echo "光驱已经打开"&vbcrlf&"单击确定关闭光驱"
::.Item(0).eject
::End With

保存为:test.bat,有一定的“欺骗成分”
作者: eech     时间: 2006-12-10 12:15
二楼的朋友.试了不行啊.
作者: redtek     时间: 2006-12-10 12:20
2楼、3楼代码都可行,经过实验:)

但是,2楼代码需要将倒数第2行的“cscritp.exe” 改为 “cscript.exe”,
因为那个词拼写失误(估计是急着给你回贴怕楼主等时间长了),哈哈……

[ Last edited by redtek on 2006-12-9 at 11:22 PM ]
作者: eech     时间: 2006-12-10 12:24
谢谢5楼的朋友.你说的对.但二楼的大虾文件会生成一个临时文件.虽能自动删除.但要不生成就更完美了
作者: lxmxn     时间: 2006-12-10 12:38

  2楼中的代码已经更正。多谢 Redtek 兄提醒啊。汗一下自己。

作者: 3742668     时间: 2006-12-10 12:41

mshta "javascript:with (new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0)){Eject();if(confirm("是否进仓?")) Eject();}window.close();"
正在从vbs转到js,给个同样功能的吧。记得在下面用一句taskkill结束mshta进程。
作者: lxmxn     时间: 2006-12-10 12:45


  Quote:
记得在下面用一句taskkill结束mshta进程。

  经过测试,不用taskkill结束进程,也会自动关闭窗口的,任务管理器里面也没有mshta.exe进程。

作者: 3742668     时间: 2006-12-10 13:06


  Quote:
Originally posted by lxmxn at 2006-12-10 12:45:


  经过测试,不用taskkill结束进程,也会自动关闭窗口的,任务管理器里面也没有mshta.exe进程。

你什么版本的什么操作系统?
我实验过很多次,也问过不少朋友,从脚本创建WMPlayer.OCX对象后都存在无法释放的情况。
我的测试环境都是xp sp2联想oem版。

————————————俺是分割线——————————————


*********************************
                     版务记录
*********************************
操作:       合并主题
原因:       讨论主题重复
原fid:       25520
执行:       3742668
备注:       1.建议发贴前看看置顶版规
              2.一个主题不要多次发贴。
**********************************


[ Last edited by 3742668 on 2006-12-10 at 01:11 PM ]
作者: lxmxn     时间: 2006-12-10 13:28

  我是 Windows XP Professional SP2 的系统。

作者: eech     时间: 2006-12-11 01:13
版主.但我问二个问题.不是又违反了"一题多发"吗?
作者: 3742668     时间: 2006-12-11 07:41
Re  eech:
    首先感谢你有意识地按照版规发贴。
    关于这两个主题合并的问题。因为你两个主题存在明显的上下文关系,主要内容大概是“如何从批处理中操作光驱”,只不过由于第一贴中大家只是给出的vbs脚本而没有转换为bat才开的第二贴,为了避免他人看到你第一贴后再如你一样发贴询问如何转换为bat,所以将这两个主题并为一贴。
    如果此次操作给你带来不便或你觉得有异议,请到《意见反馈&网友交流》版申诉,或用站内消息系统留言说明。