vbscript运行后不自动结束

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:35:46
看到网上有一篇用vbscript关闭光驱的文章,试了用之后发现是可以关光驱,但是进程运行后不能自己结束,每用一次就占用内存6Mb,关机是提示是否结束Wscript.exe,不知道是否可以加一些语句来自动结束该进程。其vbscript如下:
Set wmp = CreateObject("WMPlayer.OCX.7")

Set cdrom = wmp.cdromCollection

If cdrom.Count >= 1 then '(该句用来判断你的系统中装了多少个光驱)

For z = 0 to cdrom.Count - 1

cdrom.Item(z).Eject

Next

For z = 0 to cdrom.Count - 1

cdrom.Item(z).Eject

Next

End If
我简化之后用:
Set wmp = CreateObject("WMPlayer.OCX.7")

Set cdrom = wmp.cdromCollection

cdrom.Item(1).Eject

cdrom.Item(1).Eject

另存为vbe文件,运行后该进程都不自动释放内存,请高手指教一下。谢谢!!

苦苦寻觅三五年,终于遇上知音人。

这个问题是死结,我早就发现但没进一步研究。

妙处:cdrom.Item(i).Eject 单次使用是弹出,偶次使用是关闭。

问题关键:Set wmp = CreateObject("WMPlayer.OCX")
创建这个对象还可以正常退出,但只要我们使用了Eject命令就无法正常退出脚本。可能是这个控件WMPlayer.OCX不够完善。

WMP不断升级,也出现了不同版本的控件。
复制98,ME,2K,XP,VISTA下面的这个控件到自己的电脑上,注册后使用上面的程序,测试脚本是否正常退出。
注册方法:regsvr32 %windir%\system32\WMPlayer.OCX

补充:
set ws=createobject("wscript.shell")

Set wmp = CreateObject("WMPlayer.OCX.7")
Set cdrom = wmp.cdromCollection
cdrom.Item(0).Eject

wscript.sleep 1000

ws.run "cmd /c taskkill /f /im WScript.exe",1,False