Board logo

标题: [求助]请问如何用批处理检查一个程序是否已运行 [打印本页]

作者: i3i4i5     时间: 2008-3-24 11:23    标题: [求助]请问如何用批处理检查一个程序是否已运行

如题
最近将输入法加入系统托盘.程序internat要通过开始菜单的启动项启动.但是安全设置不允许在启动项加入快捷方式.只好用批处理.
我是在网吧环境,所以不能一台一台的添加,只好在服务器上统一添加开机运行命令.但有的机子能启动输入法,再用开机命令加一次的话会弹出对话框,说程序已运行.
虽说不是大问题,但很影响客户上网情绪.小弟解决不了,所以来求助.
另外输入法切换也出现问题.就是按常规的Ctrl+Shift切换输入法不管用,设置成Alt+Shift倒是管用,但有客户并不知道Alt+Shift还能切换输入法.唉.这不是批处理的范围,但如果那位兄台知道,也顺便指教一下
作者: Climbing     时间: 2008-3-24 12:19
用tasklist配合find可以检查对应程序是否已经运行。

Ctrl+Shift切换不了输入法,这似乎只能说是系统有问题了。
作者: i3i4i5     时间: 2008-3-25 17:04
谢谢指教.
作者: chishingchan     时间: 2008-3-26 12:00    标题: 例如是AVP.EXE进程

可否帮忙列出代码?
作者: jiulong     时间: 2008-3-26 16:56
for /f "tokens=1" %%i in ('tasklist^|find "avp.exe"') do (
if avp.exe EQU %%i (
                             echo %%i进程存在&pause>nul&exit
                      )else(
                             echo %%i进程不存在&pause>nul&exit
              )
作者: Climbing     时间: 2008-3-26 17:14
没有必要用for。

tasklist | find /i "avp.exe" >nul
if %errorlevel%==0 echo find avp.exe
作者: m84464772     时间: 2008-3-27 20:06
这样写简单一点.
tasklist | find /i "internat.exe" || echo 没有找到进程..