Board logo

标题: 判断QQ是否登录 [打印本页]

作者: 92kp    时间: 2008-10-28 10:22     标题: 判断QQ是否登录

====================
第一个问题:
在同一台机器上1个QQ号码是不能同时登录两次的。QQ程序本来就有这个功能。

现在我想用BAT方法来判断某个QQ在本机上是否已经登录。

当然通过进程可以知道本机上是否有QQ运行,可是怎么判断这个进程是不是这个号码的进程了?


一句话,怎么判断QQ1017711800是否在本机上登录?如果没有登录,则登录;如果已经登录什么也不做。
========================
第二个问题:
在上QQ的时候,如果别人也登录你的号码,会弹出“您的号码在别处登录……”的对话框。请问用BAT或者VBS怎么抓捕这个事件,从而激发其他方法过程。


联系QQ773699 ,[email]773699@qq.com[/email]
作者: pusofalse    时间: 2008-10-28 12:51

判断QQ安装路径中有无1017711800文件夹,这是首先想到的方法,不过似乎行不通。。。
作者: 92kp    时间: 2008-10-28 13:07

这个当然不行。QQ进程上也不行,QQ进程只有QQ.exe可是没有对应具体的号码
作者: 92kp    时间: 2008-10-28 13:10

不知道当一个号码登录以后,会有什么特征产生
作者: jellyhk    时间: 2008-10-28 13:34     标题: 方法!!!!!!

会写入个qq号明名字的文件夹不过如果以前登陆过就不行了!
除非。。。
你用bat文件来登陆qq!登陆后删除相关文件以后的话就能搞定第一个问题了吧!
(关键是不能有文件!登陆后有了文件就知道是什么号登陆了!)
-----------------
第二个问题者就有点问题了!
貌似是不可能的!除了你是顶级hacker去追踪!
作者: everest79    时间: 2008-10-28 15:42

QQ窗口标题是包含了QQ号码的,tasklist中可以显示窗口标题
作者: 92kp    时间: 2008-10-28 17:34

请把代码和截图给我看一下好吗?tasklist 显示窗口标题

最好直接发进我的邮箱里面吧。773699@QQ.COM
作者: terse    时间: 2008-10-28 18:50

第一问题可以试下面的
  1. @echo off
  2. wmic process get CommandLine>%temp%\qq_tem
  3. type  "%temp%\qq_tem"|findstr /ic:"START QQUIN:1017711800 PWDHASH:">nul&&echo 已经登陆||echo 还没有登陆
  4. del "%temp%\qq_tem"
  5. pause
复制代码

作者: pusofalse    时间: 2008-10-28 18:56     标题: 回复 8楼 的帖子

terse前辈是否弄错了,QQGAME.EXE才可以用这种方法。
作者: terse    时间: 2008-10-28 19:55

原帖由 pusofalse 于 2008-10-28 18:56 发表
terse前辈是否弄错了,QQGAME.EXE才可以用这种方法。

获取到 启动QQ进程命令  我想是就可以分析到的啊
作者: Batcher    时间: 2008-10-28 21:36     标题: 回复 7楼 的帖子

发进你的邮箱?我看还是让6楼把完整代码打印好以后,用EMS快递到你家里吧?方便留个家庭住址不?
作者: 92kp    时间: 2008-10-28 22:41     标题: 谢谢terse

非常感谢,真的很棒。现在我需要解决第二个问题。
作者: Batcher    时间: 2008-10-28 22:45

来自: 92kp  标题: 吴

如果你愿意就发,我还能不敢要吗?说话真不客气!郁闷

你没有留下地址,我想发都发不了!郁闷
作者: more    时间: 2008-10-29 14:30

原帖由 terse 于 2008-10-28 19:55 发表

获取到 启动QQ进程命令  我想是就可以分析到的啊

在我这里的情况是:从命令行登陆QQ才可以获得QQ号码的信息.但是如果从windows登陆的话,无法获取.谁愿意再试试并告知结果吗?
作者: everest79    时间: 2008-10-29 17:27

研究下skip下的那个脚本文件,里边有获取号码的方法吧
作者: terse    时间: 2008-10-29 18:11

原帖由 more 于 2008-10-29 14:30 发表

在我这里的情况是:从命令行登陆QQ才可以获得QQ号码的信息.但是如果从windows登陆的话,无法获取.谁愿意再试试并告知结果吗?

确实是这样的  甚至QQGAME.EXE都不能获取  看来要另寻途径了
作者: pusofalse    时间: 2008-10-29 18:14

能否用rundll32.exe调用其中某个dll里的GetCurrentUin函数?
从昨天开始就一直测试,愣是没发现什么,仅是从GetCurrentUin的字面意思理解的。
作者: beck1321    时间: 2008-11-1 09:03

期望高手们继续解决~~~~飘过
作者: make    时间: 2008-11-2 13:35

原来批处理还有这个用处啊?我怎么不知道
作者: everest79    时间: 2008-11-15 05:09

QQ的运行状态与所有号码列表应有方法可以得到,应包含在腾讯没有公布的一些文件接口中,最有可能的就是Timwp.Dll;Timwp.exe

一些网页上有例如
  1. Dim QQ
  2. Set QQ=CreateObject("TimwpDll.TimwpCheck")
  3. Msgbox QQ.GetLastQQVersion
  4. Msgbox QQ.CheckQQRunning
复制代码
这样的代码
作者: pusofalse    时间: 2008-11-15 22:38

汗。。终于找到方法了,但借助了第三方工具cmdow.exe
  1. @echo off
  2. for /f "tokens=13 delims=_ " %%a in ('cmdow /f /p ^|findstr "_SmallClient"') do set "uin=%%a"
  3. If defined uin echo 当前登录的QQ: %uin%
  4. pause>nul
复制代码

先到第三方版块搜索Cmdow.exe




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