使用AutoIt导出QQ群漫游聊天记录

本文同步自(最佳显示效果请点击):https://zohead.com/archives/autoit-export-qqmsg/

近日需要将某个QQ群的聊天记录导出来查找需要的东西,但发现本地保存的聊天记录比较少,很多日志都在漫游的聊天记录里,QQ本身又没有提供直接导出漫游聊天记录的功能,因此就想到写一个 AutoIt 自动脚本来模拟鼠标和键盘动作自动导出日志了。

首先安装 AutoIt v3,然后打开需要导出的QQ群聊天窗口,点击 “消息记录” 按钮(消息会显示在右边窗口),然后切换到 “漫游消息” 标签;接着再开启一个空的 EditPlus 文档:

QQ群漫游聊天记录

QQ群漫游聊天记录

然后运行我写的这个简单的 copy_qqmsg.au3 AutoIt 脚本就可以自动将漫游聊天记录复制到 EditPlus 中了,运行之前请先将第一行的 qqgroup 换成实际的QQ群或者聊天窗口的名字。

AutoIt 脚本内容其实非常简陋的,没有什么难度,内容如下:

Local $hWnd = WinGetHandle("[CLASS:TXGuiFoundation; TITLE:qqgroup]", "")
Local $editWnd = WinGetHandle("EditPlus", "")

$i=1
While $i<=200
	WinActivate($hWnd)
	Local $aPos = WinGetPos("[ACTIVE]")
	MouseClick("left", $aPos[0] + $aPos[2] - 52, $aPos[1] + $aPos[3] - 18)
	Sleep(100)
	$i=$i+1
WEnd

$i=1
While $i<=100
	WinActivate($hWnd)
	Local $aPos = WinGetPos("[ACTIVE]")
	MouseClick("left", $aPos[0] + $aPos[2] - 52, $aPos[1] + $aPos[3] - 18)
	Sleep(5000)
	Send("^a")
	Send("^c")
	WinActivate($editWnd)
	Sleep(500)
	Send("^v")
	Send("{ENTER}")
	Sleep(500)
	$i=$i+1
WEnd

先根据QQ聊天窗口类名(TXGuiFoundation)和标题名称(根据实际需要修改)查找到QQ聊天窗口句柄,再查找到 EditPlus 窗口句柄,接着将鼠标移动到QQ聊天窗口右下角的 “<” 上一页按钮上自动点击并发送全选及复制按键,然后切换到 EditPlus 窗口中进行粘贴。程序运行过程中鼠标和键盘不要乱按哦。

第一个循环中的 200 表示当前页再往前翻多少页,第二个循环中的 100 表示自动拷贝多少页的聊天记录(方式比较土,没什么好办法判断什么时候结束)。鼠标点击之后的 Sleep 5秒钟是为了给QQ显示漫游聊天记录的时间。

需要的朋友可以到我的 Gist 上下载此 AutoIt 脚本,可以自己下载之后用 AutoIt 编译成可执行程序的:

http://gist.github.com/zohead/10130455

有任何问题的话欢迎交流哦~~~





*