[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络工具] 批处理获取QQ路径、自动登录QQ小结及讨论(20160105)

自动获取QQ路径的几种方法:读注册表、全盘搜索、获取进程信息等:
  1. @echo off
  2. REM 使用ftype获取QQ路径
  3. for /f "tokens=1* delims==" %%a in ('ftype Tencent') do (
  4.     set FilePath=%%~dpbQQ.exe
  5. )
  6. echo %FilePath%
  7. pause
复制代码
  1. @echo off
  2. REM 使用WMIC获取进程信息中的QQ路径(要求QQ处于运行状态)
  3. for /f "tokens=2 delims==" %%a in ('wmic process where "name='qq.exe'" get executablepath /value') do (
  4.     set FilePath=%%a
  5. )
  6. echo %FilePath%
  7. pause
复制代码
  1. @echo off
  2. REM 使用WMIC全盘搜索获取QQ路径
  3. for /f "skip=1 delims=" %%a in ('wmic datafile where "filename='qq' and extension='exe'" get name') do (
  4.     set FilePath=%%a
  5. )
  6. echo %FilePath%
  7. pause
复制代码
  1. @echo off
  2. REM 使用reg query命令读注册表获取QQ路径
  3. for /f "tokens=2*" %%a in ('reg query HKEY_LOCAL_MACHINE\Software\Tencent\QQ /v Install^|findstr "Install"') do (
  4.     set FilePath=%%b
  5. )
  6. echo %FilePath%
  7. pause
复制代码
  1. @echo off
  2. REM 使用reg export命令到处注册表项再搜索获取QQ路径以避免reg query可能存在的吃中文字符的问题
  3. reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ" "%temp%\qq.txt">nul
  4. for /f "tokens=2 delims==" %%a in ('type "%temp%\qq.txt"^|findstr /i "Install"') do (
  5.     REM 可以用 %%~fa 直接把字符串中的\\变成\
  6.     set FilePath=%%~a
  7. )
  8. set FilePath=%FilePath:\\=\%
  9. echo %FilePath%
  10. pause
复制代码
  1. @echo off
  2. REM 调用VBS读注册表获取QQ路径
  3. >"%temp%\my.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
  4. >>"%temp%\my.vbs" echo WScript.Echo WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ\Install")
  5. for /f "delims=" %%a in ('cscript /nologo "%temp%\my.vbs"') do (
  6.     set FilePath=%%a
  7. )
  8. echo %FilePath%
  9. pause
复制代码
  1. @echo off
  2. REM 全盘搜索获取QQ路径
  3. set fName=qq.exe
  4. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  5.     if exist %%a:\nul (
  6.         pushd %%a:\
  7.         for /r %%b in (%fName%?) do (
  8.             if /i "%%~nxb" equ "%fName%" (
  9.                 set FilePath=%%b
  10.                 goto :show
  11.             )
  12.         )
  13.         popd
  14.     )
  15. )
  16. :show
  17. echo %FilePath%
  18. pause
复制代码
从2009开始QQ不再支持命令行方式登录,请尝试发送按键的方式。

VBS发送按键自动登录QQ
http://bbs.bathome.net/thread-7893-1-1.html

AutoIt版QQ登录器
http://bbs.bathome.net/thread-2789-1-1.html

===================================================================================

原理及使用方法:
  1. start "" "C:\Program Files\Tencent\QQ\qq.exe" /start QQUIN:843875648 PWDHASH:4Z1c1a8DeNoF9j+JHHRnrw== /stat:40
复制代码
10:上线登陆
40:隐身登陆
41:上线登陆
QQUIN和PWDHASH必须使用大写字母

原理:QQ在传输密码的时候,先做一次MD5加密,再做一次BASE64变换,这样可以得到正常的文本信息以便网络传输。找一个MD5在线查询的网站(比如http://www.xmd5.org/),输入QQ密码的明文,转换得到MD5加密的结果,再找一个BASE64在线查询的网站(比如http://www.waishi.net/ip/tools/base64.htm),输入刚才得到的MD5加密的结果,转换得到HASH编码即可。

使用VBS的SendKeys方法自动登录,因无法保证获取正确的交单,存在风险,因此不予考虑。

经测试,目前无法用这个方法登陆最新的QQ2009正式版,可能是新版的QQ未开启这个命令行接口吧,只能继续期待以后的版本了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

QQ密码转PwdHash
需要第三方命令行工具MD5.exe和Base64.exe
下载地址:http://bbs.bathome.net/thread-3981-1-1.html
  1. @echo %dbg% off   &&   setlocal   &&   chcp 437|graftabl 936>nul   &&   set /p var=字符串:
  2. for /f %%. in ('md5 -d%var%') do set "var=%%."
  3. :toSplit
  4.    if [%a%]==[32] (goto :toBase64) else (call call set "str=%str% %%var:~%a%,2%%" && set /a a+=2)
  5.    goto :toSplit
  6. :toBase64
  7.    echo exit|%ComSpec%/kprompt e 100 %str% $_rcx$_10$_n tmp.tmp$_w$_q$_|debug>nul
  8.    for /f %%. in ('type tmp.tmp^|base64') do ( set "base64=%%." )
  9.    echo.&echo PwdHash码: %base64%   &&   del tmp.tmp >nul 2>nul
复制代码
批处理版Base64编码运算,直接将代码拷过来改下,测试成功。只用到MD5.exe
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set B64CODE=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
  4. set/p str=请输入密码:
  5. for /f %%i in ('md5 -d%str%') do set "strhex=%%i"
  6. :encloop
  7. if not defined strhex goto :encbreak
  8. set chr1=0x!strhex:~0,2!
  9. set chr2=0x!strhex:~2,2!
  10. set chr3=0x!strhex:~4,2!
  11. set strhex=%strhex:~6%
  12. for %%i in (chr1 chr2 chr3) do if "!%%i!"=="0x" set %%i=0
  13. set/a enc1=%chr1%">>"2
  14. set/a enc2=((%chr1%"&"3)"<<"4)"|"(%chr2%">>"4)
  15. set/a enc3=((%chr2%"&"15)"<<"2)"|"(%chr3%">>"6)
  16. set/a enc4=%chr3%"&"63
  17. if %chr3% equ 0 if %chr2% equ 0 (set enc4=64& set enc3=64) else (set enc4=64)
  18. set encstr=!encstr!!B64CODE:~%enc1%,1!!B64CODE:~%enc2%,1!!B64CODE:~%enc3%,1!!B64CODE:~%enc4%,1!
  19. goto :encloop
  20. :encbreak
  21. echo QQPwdHash:[%encstr%]
复制代码
MD5.vbs本地下载:

MD5.hta本地下载:

PWDHASH.vbs本地下载:http://www.bathome.net/viewthread.php?tid=1774#pid9805

PWDHASH.htm(javascript)本地下载:

原文地址:
http://www.cn-dos.net/forum/viewthread.php?tid=27000
http://www.cn-dos.net/forum/viewthread.php?tid=36823
http://www.cn-dos.net/forum/viewthread.php?tid=29795&page=2
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

批处理获取本机正在运行的QQ的号码
原文地址:http://www.cn-dos.net/forum/view ... mp;page=2#pid308613
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem 请根据QQ实际路径进行修改或者自行添加自动获取QQ路径的功能模块
  4. rem 自动获取QQ路径的几种方法:读注册表、全盘搜索、获取进程信息等
  5. set QQPath=C:\Program Files\Tencent\QQ\
  6. tasklist /nh /fi "imagename eq QQ.exe" 2>nul|findstr /i "QQ.exe">nul||goto :NoQQ
  7. for /f %%a in ('dir /b /ad /o-d "%QQPath%"^|findstr "^[1-9][0-9]*$"') do (
  8.   for /f "delims=" %%h in ('dir /s /b "%QQPath%%%a\qqstatcount.dat"') do (
  9.     set LastModify=%%~th
  10.     rem 如果某个在线的QQ长期不活动,可能无法获得其号码。
  11.     if "!LastModify:~0,13!"=="!date:~0,10! !time:~0,2!" (
  12.       echo 本机正在运行的QQ号:%%a [!LastModify!]
  13.     )
  14.   )
  15. )
  16. goto :end
  17. :NoQQ
  18. echo 本机没有QQ在运行
  19. :end
  20. pause
复制代码
批处理自动获取最快速的QQ服务器
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=40395
  1. @echo off
  2. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz.tencent.com') do echo %%c >"QQlist.txt"
  3. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz1.tencent.com') do echo %%c >>"QQlist.txt"
  4. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz2.tencent.com') do echo %%c >>"QQlist.txt"
  5. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz3.tencent.com') do echo %%c >>"QQlist.txt"
  6. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz4.tencent.com') do echo %%c >>"QQlist.txt"
  7. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz5.tencent.com') do echo %%c >>"QQlist.txt"
  8. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz6.tencent.com') do echo %%c >>"QQlist.txt"
  9. for /f "skip=3 tokens=1-3" %%a in ('ping -n 1 -l 1 sz7.tencent.com') do echo %%c >>"QQlist.txt"
  10. set MinL=99
  11. set MinT=9999ms
  12. set Best=""
  13. for /f "usebackq" %%a in ("QQlist.txt") do (
  14.   call :time %%a
  15. )
  16. echo 最佳服务器:%Best%
  17. echo 最佳服务器的响应时间:%MinT%
  18. goto :eof
  19. :time
  20. for /f "skip=11 tokens=4 delims==" %%a in ('ping %1') do (
  21.   if "%%a" equ "  0ms" (
  22.     set /a Best=%1
  23.   ) else (
  24.     call :best %%a %1
  25.   )
  26.   goto :eof
  27. )
  28. :best
  29. for /f "skip=1 delims=:" %%a in ('^(echo %1^&echo.^)^|findstr /o ".*"') do set nowlen=%%a
  30. if "%nowlen%" lss "%MinL%" (
  31.   set /a MinL=%nowlen%
  32.   set MinT=%1
  33.   set Best=%2
  34. ) else if "%nowlen%" equ "%MinL%" (
  35.   if "%1" lss "%MinT%" (
  36.     set MinT=%1
  37.     set Best=%2
  38.   )
  39. )
  40. goto :eof
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 请稍候......
  3. for /f "delims=" %%a in ('more +16 "%~0"') do (
  4.      set tx=%%a&set var=
  5.      for /f "tokens=1-4 delims=[]=" %%i in ('ping %%a^|findstr /i "%%a Average"') do call:LP "%%j" "%%l")
  6.      for /f "tokens=1,2 delims=-=0" %%i in ('set -') do echo 最快服务器:%%j IP地址:!%%j! 响应时间%%i&goto end
  7. :end
  8. pause&exit
  9. :LP
  10. if not defined var set var=%~1
  11.    if not %2=="" (
  12.    set str=%~2&set str=!str: =!
  13.    set str=00000000!str!&set str=!str:~-10!
  14.    set -!str!=%TX%&set %TX%=!var!
  15. )
  16. goto :eof
  17. sz.tencent.com
  18. sz1.tencent.com
  19. sz2.tencent.com
  20. sz3.tencent.com
  21. sz4.tencent.com
  22. sz5.tencent.com
  23. sz6.tencent.com
  24. sz7.tencent.com
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本论坛批处理登录QQ相关讨论

多QQ自动登陆(PWDHASH)
http://bbs.bathome.net/viewthread.php?tid=750

CMD批处理做Base64编码运算理论原型
http://bbs.bathome.net/viewthread.php?tid=587

16进制数用base64编码批处理版
http://bbs.bathome.net/viewthread.php?tid=3421
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5楼 的帖子

1、已更新到顶楼
2、跳过光驱盘符
3、已更新到顶楼
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 12楼 的帖子

我测试过官方2009的所有版本,都不支持。2009以下的版本太多了,很难一一测试,至少2007、2008是可以的。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 21# 434939575


不知道你测试的哪个代码不行。

仅就你的这一行代码而言,很好奇你看的哪个教程,加引号的方式怪怪的。
我建议改成如下的格式:
set "QQPath=C:\Program Files (x86)\Tencent\QQ\Bin"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表