标题: [已结]有两个QQ先后运行,如何得到他们的PID?
[打印本页]
作者: kyqm
时间: 2009-1-31 17:42
标题: [已结]有两个QQ先后运行,如何得到他们的PID?
[求助]通过dos命令让两个QQ先后运行,如何得到他们的PID?
因为我想用dos关闭其中某个,比如说关闭第一个吧
我有个大致思路:
2个QQ运行时必有先后,每次记下运行时进程列表,
通过比较可以把两者PID区分开来
不知是否能行,如果行,能否帮忙写个
谢谢
[
Last edited by HAT on 2009-2-3 at 05:44 ]
作者: slore
时间: 2009-1-31 19:28
WMI得到的话是按先后顺序,大小貌似不太确定,一般大的是后面的……一般
作者: voiL
时间: 2009-1-31 20:09
如果根据PID大小来判断程序启动的先后是不行的哦.
以前好像在哪看到有个程序可以看到任一进程运行的时间的吧.
不过现在那文章我找不到了,之前收藏过的.
作者: moniuming
时间: 2009-1-31 22:28
前提条件为QQ必须是通过命令行来登陆.
@echo off
Setlocal Enabledelayedexpansion
:agn
set n=0&set "in="
::请根据实际情况对下面这句的"tokens="后面的内容作适当更改
for /f "tokens=6,11 delims=: " %%a in ('wmic process where "name='qq.exe'" get commandline^,handle') do (
set /a n+=1
set pid!n!=%%b
echo.!n! %%a
)
echo.&set input=&set /p input=请输入要退出的QQ的序号(回车退出):
if not defined input goto :eof
:again
set "in= %input:~,1%%in%"
if not "%input:~1%"=="" (
set input=%input:~1%
goto :again
)
for %%a in (%in%) do (
taskkill /f /pid !pid%%a!
)
echo.&goto :agn
作者: mgq
时间: 2009-2-1 12:19
@echo off
for /f "tokens=2 delims= " %%a in ('tasklist /fi "imagename eq qq.exe" /v /fo table^|findstr /i /c:"qq.exe"') do (
echo %%a
)
pause
作者: mountvol
时间: 2009-2-1 14:53
wmic process get Caption,CreationDate,handle
作者: BC
时间: 2009-2-2 09:46
抓到不少高手出来啊,学习!
作者: kyqm
时间: 2009-2-2 16:06
谢谢给出源码的朋友,研究中。。。