Board logo

标题: [代码合集] start命令调用wmplayer.exe引出来的一系列问题 [打印本页]

作者: pumahxh    时间: 2009-12-16 23:53     标题: start命令调用wmplayer.exe引出来的一系列问题

我想用start命令调用wmplayer.exe播放指定的声音文件,wmplayer.exe就是系统自带的播放器,目的是让wmplayer.exe播放时在后台运行。我用的方法如下:
start /min "" wmplayer.exe "c:\path\sound.wav"
1.运行上面代码发现一个问题:当在代码运行之前进程里没有wmplayer.exe时,运行正常,wmplayer.exe在后台运行,顺利地播放声音文件,播放完之后也不弹出界面(没有退出,还停留在进程里)。当第二次运行代码时,此时进程里已有wmplayer.exe了,wmplayer.exe播放时就变成前台运行。请问这是为什么?我也没搞懂为什么这样写代码就可以让wmplayer.exe在后台运行,自己胡乱写出来的。
2.我想到在代码前加一句结束进程里停留的wmplayer.exe的代码。
方法a:tasklist|find/i "wmplayer.exe"&&taskkill"imagename eq wmlayer.exe"
结果:与没有加一样;这是为什么?taskkill明明能杀wmplayer.exe,但就是没有用?
方法b:tasklist|find/i "wmplayer.exe"&&ntsd -c q -pn wmlayer.exe
结果:效果不错,wmplayer.exe始终在后台播放。同时也发现了一个缺点,ntsd会调用另一个命令窗口,虽然只是一瞬间跳出来就结束了,但毕竟碍眼,有没有办法屏蔽,或者不让它出现。尝试许多办法没有实现。

希望大侠指点迷津,在此先谢过!

[ 本帖最后由 pumahxh 于 2009-12-18 15:13 编辑 ]
作者: Batcher    时间: 2009-12-17 00:29

不用拐那么多弯,直接杀进程即可:
  1. taskkill /f /im wmlayer.exe >nul 2>&1
复制代码

作者: pumahxh    时间: 2009-12-18 09:57     标题: 回复2楼

你说的直接杀进程我方法a里已经试过了,没有用,在第二次运行时就会跳出播放器,不信你试试!

补充:原帖笔误:“方法a:tasklist|find/i "wmplayer.exe"&&tasklist "imagename eq wmlayer.exe"
结果:与没有加一样;这是为什么?taskkill明明能杀wmplayer.exe,但就是没有用?”
应该是:tasklist|find/i "wmplayer.exe"&&taskkill "imagename eq wmlayer.exe"
已在楼顶修改
作者: Batcher    时间: 2009-12-18 11:15

顶楼方法a还是没有个tasklist改成taskkill啊,你再看看?
作者: pumahxh    时间: 2009-12-18 15:13

谢谢楼上提醒!已改!
作者: Batcher    时间: 2009-12-18 18:00     标题: 回复 5楼 的帖子

  1. taskkill"imagename eq wmlayer.exe"
复制代码
你试过顶楼的这个命令吗?能杀掉进程吗?我这里测试时杀不掉,报语法错。
作者: Spring    时间: 2009-12-18 18:54

我的怎么没有隐藏,而是最小化到任务栏呢????
作者: zqz0012005    时间: 2009-12-18 19:01

给你一个更方便的
用最古老的mplayer2.exe,可以自动关闭
  1. start /min "" mplayer2.exe /close /play C:\WINDOWS\Media\chimes.wav
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2