|
bbs4033
初级用户
 
积分 22
发帖 10
注册 2008-1-1
状态 离线
|
『楼 主』:
[求助]有能关闭光驱的bat吗
想实现这么一个想法:
到正点的时候,几点光驱就出来几次,并发出几声滴滴的响声.
谢谢!
|
|
2008-1-9 11:51 |
|
|
chenall
银牌会员
    
积分 1276
发帖 469
注册 2002-12-23 来自 福建泉州
状态 离线
|
『第
2 楼』:
论坛找下,记得之前有谁发过一个开关光驱的命令的.
可以用下.
发出几声滴滴的响声.用echo就可以了.
echo.
|

|
|
2008-1-9 12:58 |
|
|
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
挺方便的.学习了.
|

|
|
2008-1-9 13:14 |
|
|
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
状态 离线
|
|
2008-1-13 21:24 |
|