本文同步自(最佳显示效果请点击):https://zohead.com/archives/autoit-export-qqmsg/
近日需要将某个QQ群的聊天记录导出来查找需要的东西,但发现本地保存的聊天记录比较少,很多日志都在漫游的聊天记录里,QQ本身又没有提供直接导出漫游聊天记录的功能,因此就想到写一个 AutoIt 自动脚本来模拟鼠标和键盘动作自动导出日志了。
首先安装 AutoIt v3,然后打开需要导出的QQ群聊天窗口,点击 “消息记录” 按钮(消息会显示在右边窗口),然后切换到 “漫游消息” 标签;接着再开启一个空的 EditPlus 文档:
然后运行我写的这个简单的 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
有任何问题的话欢迎交流哦~~~