中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]有能关闭光驱的bat吗 上一主题 | 下一主题
bbs4033
初级用户





积分 22
发帖 10
注册 2008-1-1
状态 离线
『楼 主』:  [求助]有能关闭光驱的bat吗

想实现这么一个想法:
到正点的时候,几点光驱就出来几次,并发出几声滴滴的响声.
谢谢!

2008-1-9 11:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 2 楼』:  

论坛找下,记得之前有谁发过一个开关光驱的命令的.
可以用下.

发出几声滴滴的响声.用echo就可以了.
echo.



QQ:366840202
http://chenall.net
2008-1-9 12:58
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  

bat
@echo off
ping/n 2 127.1>nul&cls&set/p= .<nul
ping/n 2 127.1>nul&cls&set/p= . .<nul
ping/n 2 127.1>nul&cls&set/p= . . .<nul
mshta "javascript:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();"
vbs
set slz = CreateObject ("Wscript.Shell")
set wmp = CreateObject("WMPlayer.ocx")
set cdrom = wmp.cdromCollection
if cdrom.Count >= 1 then
         for i = 0 to cdrom.Count - 1
             cdrom.Item(i).Eject
         next
end if
slz.Run "sndrec32 /play /close C:\Windows\Media\Notify.wav", 0, True
补充说明双光盘.Item(0)或(1)
set slz = CreateObject ("Wscript.Shell")
set wmp = CreateObject("WMPlayer.ocx")
set cdrom = wmp.cdromCollection
cdrom.Item(0).Eject   '或(1).....
slz.Run "sndrec32 /play /close C:\Windows\Media\Notify.wav", 0, True
[ Last edited by fastslz on 2008-1-9 at 01:21 PM ]



第一高手    第二高手

2008-1-9 13:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  

哦至于整点打开,用at命令(计划任务),因为批处理也好vbs也好一直保留进程的
纯dos建议搜索帖子



第一高手    第二高手

2008-1-9 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 5 楼』:  

收藏下,mshta
挺方便的.学习了.



QQ:366840202
http://chenall.net
2008-1-9 13:14
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
bbs4033
初级用户





积分 22
发帖 10
注册 2008-1-1
状态 离线
『第 6 楼』:  

谢谢!不过没有达到我想要的目的。我想要的是关闭光驱的bat

2008-1-12 16:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 7 楼』:  

后面一定要延时后 taskkill 掉 mshta.exe 进程,否则每执行一次就会多一个 mshta.exe 进程(不知为何 mshta.exe 进程不能自制动关闭)
而且启动 mshta 要用 start mshta "...... 启动,我的电脑上 mshta "...... 方式就卡住了,不能执行下一步
@echo off
set/p input=选择开[O]/关[C]光驱:
if /i "%input%" == "o" start mshta "javascript:with (new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0)){Eject();};window.close();"
if /i "%input%" == "c" start mshta "javascript:with (new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0)){Eject();Eject();};window.close();"
ping -n 3 0 >nul
taskkill /im mshta.exe /f>nul
pause




2008-1-13 00:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 8 楼』:  

原来加个Eject();就多个一开一关动作,vbs也是想单次Eject没法关闭
我这里不用杀mshta.exe进程的,能自动退出
set slz = CreateObject ("Wscript.Shell")
set wmp = CreateObject("WMPlayer.ocx")
set cdrom = wmp.cdromCollection

if cdrom.Count >= 1 then
         for i = 0 to cdrom.Count - 1
             cdrom.Item(i).Eject
         next
end if

for i = 0 to cdrom.Count - 1
cdrom.Item(i).Eject
next

slz.Run "sndrec32 /play /close C:\Windows\Media\Notify.wav", vbhide




第一高手    第二高手

2008-1-13 00:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 9 楼』:  

晕~看mshta.exe的版本号 7.00.5730.13 (longhorn(wmbla).070711-1130)也就是IE7版本号,居然出现longhorn字样,微软也太水了...



第一高手    第二高手

2008-1-13 00:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bbs4033
初级用户





积分 22
发帖 10
注册 2008-1-1
状态 离线
『第 10 楼』:  

谢谢大家

2008-1-13 21:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: