中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-14 22:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎么用命令行得到当前正在运行的QQ号码 查看 2,706 回复 29
16 发表于 2008-11-05 10:21 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
开着QQ试了10楼代码
本机没有QQ在运行

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
17 Re 15楼 发表于 2008-11-05 10:22 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
11楼说你这个方法靠不住
18 Re 16楼 发表于 2008-11-05 10:23 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
10楼的代码贴错了,多了一个字符,已更新,可重新测试。
19 发表于 2008-11-05 10:23 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
呃,可是代码说的是没有QQ在运行。-_-

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
20 发表于 2008-11-05 10:25 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
Originally posted by yishanju at 2008-11-5 10:08 AM:


^_^ 偶向来只会提供方法和思路,具体代码是不会有时间去写的

不是的,那个是回复给 8 楼的。
『第 9 楼』: Re 8楼


——————————————————————————————
『第 13 楼』:

判断QQ安装目录,我觉得读注册表不太可靠,应该读QQ进程路径好点

我觉得很可靠。进程里如何读取 qq 路径?

[ Last edited by tireless on 2008-11-5 at 10:28 ]
21 Re 19楼 发表于 2008-11-05 10:25 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
呃,原因见18楼
22 Re 20楼 发表于 2008-11-05 10:27 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
有些绿色版的qq不会写注册表
可以用wmic获取进程信息
23 发表于 2008-11-05 10:30 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
Originally posted by HAT at 2008-11-5 10:27 AM:
有些绿色版的qq不会写注册表

我测试的情况是,绿色版的 QQ 同样会把 QQ 路径写入注册表。我有两个目录下有绿色版的 QQ,当打开另一个目录的 QQ 登陆框,注册表里的 QQ 路径会立即更改。
24 发表于 2008-11-05 10:33 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
得到QQ的路径应该不是难事了,这个帖子核心的问题"怎么用命令行得到当前正在运行的QQ号码"
如果多开了几个QQ是不是都能把在运行的QQ号显示出来

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
25 发表于 2008-11-05 10:45 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
遇到一个问题
dir /s /b /a-d /o-d "C:\Program Files\Tencent\QQ*qqstatcount.dat"

这个命令没有返回预期的结果,郁闷。如果要用 for + %%~ti 的方法来判断哪个文件最新,就要考虑系统日期格式可能存在的差异,又不想为了这点问题去修改注册表中的日期格式。咋办呢?恩,wmic可以避开日期格式的差异,但又得考虑有些系统不能使用wmic。左右为难啊。

先休息去了,晚上还要值夜班,到时再来看大家有没有更好的方案。如果实在不行,我就用wmic来判断最新文件了。
26 发表于 2008-11-05 10:46 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
支持WMIC

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
27 发表于 2008-11-05 11:16 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
不支持 WMIC,因为慢。
28 发表于 2008-11-05 12:27 ·  中国 广东 韶关 曲江区 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
1.确认QQ进程
2.对比最新修改的文件存在于哪个QQ号码文件夹,得出正在运行QQ号

但同时运行多个号这种思路就不行了
29 Re 28楼 发表于 2008-11-05 18:07 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
假设只有一个qq号码在线,你如何判断最新修改的文件存在于哪个QQ号码文件夹呢?能否对比25楼观点给出自己的方法?
30 发表于 2008-11-06 21:00 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
思路来源于QQ群中的一段代码,我做了稍许修改,主要是那个findstr的正则表达式。
@echo off
setlocal enabledelayedexpansion
rem 请根据QQ实际路径进行修改或者自行添加自动获取QQ路径的功能模块
rem 自动获取QQ路径的几种方法:读注册表、全盘搜索、获取进程信息等
set QQPath=C:\Program Files\Tencent\QQ\
tasklist /nh /fi "imagename eq QQ.exe" 2>nul|findstr /i "QQ.exe">nul||goto :NoQQ
for /f %%a in ('dir /b /ad /o-d "%QQPath%"^|findstr "^*$"') do (
for /f "delims=" %%h in ('dir /s /b "%QQPath%%%a\qqstatcount.dat"') do (
set LastModify=%%~th
rem 如果某个在线的QQ长期不活动,可能无法获得其号码。
if "!LastModify:~0,13!"=="!date:~0,10! !time:~0,2!" (
echo 本机正在运行的QQ号:%%a
)
)
)
goto :end
:NoQQ
echo 本机没有QQ在运行
:end
pause
论坛跳转: