feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复

== 已部署上线 (9项) ==
- 代办事项真实数据源集成 (企微审批API 8bug修复链)
- H5/坐席端 Logo样式统一+绿色背景
- 视频引导页修复 (localStorage key v2)
- 坐席端 v9 Vue版本修复 (ElMessage._context)
- 截图按钮 v10 修复 (getDisplayMedia user gesture)
- 扫码样式恢复+H5扫码登录跳转修复
- H5截图快捷键提示

== 代码完成待部署 (3项) ==
- 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查)
- 会议室预定-小鱼易联终端 (40文件, 40/40测试通过)
- IT资产升级审批推送 (asset_service.py)

== 需求文档 (2项) ==
- 坐席端AI辅助消息框-PRD (4项新功能确认)
- 坐席端布局优化建议 v2.0 (7天计划)

== 新增文档 ==
- 日报-2026-07-11.md
- 知识迭代Bug修复报告-20260711.md
- 会议室预定-部署指南.md
- CHANGELOG.md 更新

== 测试 ==
- test_todo_integration.py: 40/40
- test_meetingroom.py: 40/40
- test_bugfix_ki_suggestions.py: 21/21
This commit is contained in:
Simon
2026-07-11 23:13:10 +08:00
parent 3d152fc8eb
commit bea288e414
928 changed files with 85169 additions and 54205 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 KiB

File diff suppressed because one or more lines are too long
@@ -0,0 +1,46 @@
[
{
"index": 1,
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c1_01_top.png"
],
"ocr_texts": [
"Q 搜索\n+\n舒礼明\n稽查风险业务团队解决方案岗\n疯狂打码中\n舒礼明\n服务聊天已结束\n昨天\n4月14日09:16\n献@亿企赢总部\n宋献@亿企赢总部\n雷力\n2026-7-11\n服务聊天已结束\n昨天\n你好\n邵楚\n宋献@亿企赢总部\n6-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\nvpn 更换手机,接收验证码\n2026-7-11\n93\n王芳1989\n服务聊天已结束\n没办法接收验证码\n宋献@亿企赢总部\n昨天\n2026-7-11\n周颖慧\n您好,桌面IT支持【8222】为您服务\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n宋献@亿\n2026-7-11\n刘海霞(联系此号)\n一站式运维平台那边提交了更改手机号的工单吗\n服务聊天已结束\n昨天\n登录不上去啊\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n汤宇航\n2026-7-11\n在外面出差,当下要演示vpn登录不上去\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n贾天培\n2026-7-11\n服务聊天已结束\n昨天\n新的手机号多少\n18069691987\n安彤\n献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n目前已经给你修改了,你登入后,有空补一下工单\n宋梓琦\n好的\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n宋献@亿企\n2026-7-11\n2026-7-1\n99+\n尚冬洋\n昨天\n宋献@亿企赢总部\n登入成功了吗\n服务聊天已结束\n2026-7-11\n宋献@亿企赢总部\n==\n2026-7-11\n徐炜\n服务聊天已结束\n昨天\n可以了\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n10\n2026-7-11\n信露\n昨天\n服务聊天已结束\n好的,欢迎您的咨询,后续遇到问题可以优先选择咨询\n智能IT助手(原桌面IT支持)\n闫莹颖\n如果回复有什么错误可以反馈给我们,我们将持续优化为您提供更好的服务!\nE\n服务聊天已结束\n昨天\n服务聊天已结束\n宋献@亿企赢总部\n钱恒双\n2026-7-11\n昨天15:56\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n舒礼明进入了服务聊天\n张思琦(\n火绒的管理密码是多少\n宋献@亿企赢总部\n昨天\n宋献@亿企赢总部\n服务聊天已结束\n2026-7-11\n2026-7-11\n我想关闭下U盘保护\n32\n李圣伟(常用号)\n企\n服务聊天已结束\n昨天\n11\n宋献@亿企赢总部\n2026-7-11\n您好,桌面IT支持【8222】为您服务\n9\n有问题请先问*智能IT助手*..\n\n庄欣邀请季永盛加入了群... 昨天\n你好\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n2026-7-11\n何小枚22674\n你撤回了一条消息\n服务聊天已结束\n昨天\n提示不对\n宋献@亿企赢总部\n宋献@亿\n张鹏\n2026-7-11\n2026-7\n服务聊天已结束\n昨天\n你撤回了一条消息\n宋献@亿企赢总部\n云盘相关问题处理群\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n这个呢\n张鹏:好的\n昨天\n可以了\n看不见\n许松\n宋献@亿企赢总部\n昨天\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n欢迎您的咨询,后续遇到问题可以优先选择咨询\n智能IT助手(原桌面IT支持)\n侯品品\n如果回复有什么错误可以反馈给我们,我们将持续优化为您提供更好的服务!\n服务聊天已结束\n昨天\n昨天16:10\n缪春德\n服务聊天已结束\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n吴美玲\n服务聊天已结束\n星期四\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总音\n有问题请先问\"智能IT助手\"...\n2026-7-11\n陈文锋:哦哦\n星期四\n③\nx\n目\n\n00\nN\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\n企微服务商权限管理-亿企...\n李学鹏: [OK]\n星期四"
],
"screenshot_count": 1
},
{
"index": 2,
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c2_01_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c2_02.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c2_03.png"
],
"ocr_texts": [
"Q 搜索\n+\n雷力\n重庆技术团队\n系统运维岗\n舒礼明\n服务聊天已结束\n昨天\n昨天15:42\n献@亿企赢总部\n宋献@亿企赢总部\n雷力进入了服务聊天\n2026-7-11\n雷力\n2026-7-11\n服务聊天已结束\n昨天\n6月工资清单自助查询提醒\n宋献@亿企赢总部\n邵楚\n2026-07-10 人力资源共享服务中心\n2026-7-11\n服务聊天已结束\n昨天\n各位同事好:\n6月工资清单已开放查询,工资将于今日发放,具体到账时间请以银行为准。\n王芳1989\n服务聊天已结束\n昨天\n查询路径:EHR--我的工资--我的月工资清单\n(因数据安全需要,工资清单仅支持PC端查询)\nEHR链接: http://ehr.dc.servyou-it.com/HRis/Loginx.aspx\n周颖慧\n说明:\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n1、新疆部分同事及联营云工资清单请按照区域通知的为准。\n2026-7-11\n2、登录EHR系统需连接公司内网,请先接入公司WI-FI或VPN;VPN请咨询企微服务号-桌面IT支\n持,发送VPN”即可获取申请和使用指南,如有疑问可转人工服务。\n刘海霞(联系此号)\n服务聊天已结束\n昨天\n你好,如何连接vpn访问公司内网\n宋献@亿企赢总部\n2026-7-11\n汤宇航\n您好,桌面IT支持【8222】为您服务\n服务聊天已结束\n昨天\n赢总部\n宋献@亿企赢总部\n2026-7-11\n贾天培\n零信任aTurst——员工使用指南\n服务聊天已结束\n昨天\n郑明扬(已离职)创建\n宋献@亿企赢总部\n1. 账号申请开通\n安彤\n2026-7-11\n银据安全管理要求VPN账号需要核据需要中请开课,VPN除号密码、认证\n服务聊天已结束\n昨天\n独立配置,与其他系统账号密码不同;\n一站式运续平台-VPN号中请链线\n宋献@亿企赢总部\n8\ntp:/devps.dc.erycu-.com/t/w..\n1. 未开通账号员工可通过\n宋梓琦\n2026-7-11\n服务聊天已结束\n昨天\n99+\n尚冬洋\n宋献@亿企赢总部\n宋献@亿企赢总部\n可以先提交申请账号\n服务聊天已结束\n昨天\n2026-7-11\n2026-7-11\n7/10 15:45:54\n徐炜\n昨天\n宋献@亿企赢总部\n服务聊天已结束\n2026-7-11\nB\n10\n信露\n无法访问此网站\n服务聊天已结束\n昨天\n检\n, TGin\n闫莹颖\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n钱恒双\n服务聊天已结束\n昨天\n提交账号申请的链接都进不去呢\n宋献@亿企赢总部\n张思琦(\n2026-7-11\n2026-7-11\n服务聊天已结束\n昨天\n我没在总部办公\n企赢总部\n32\n李圣伟(常用号)\n11\n昨天\n3.\n可以在手机企微端-【工作台】-【一站式运维平台】-【服务台】-【服务目\n服务聊天已结束\n录】-【IT支持服务】下,进行【员工零信任(原vpn)账号申请】(无需登入vpn\n可直接打开)\n有问题请先问\"智能IT助手\"..\n宋献@亿企赢总部\n 一站式运维平台(v20260409...\n庄欣邀请季永盛加入了群... 昨天\n2026-7-11\n<\n服务目录\n何小枚22674\n请输入内容\n服务聊天已结束\n昨天\n2\n宋献@亿企赢\n收藏的流程\n员工服务入口\n2026-7-11\nGM-地市服务\nIT设备升级与硬件维修\n☆>\n张鹏\n昨天\nIT支持服务\n终强设备网络准入申请\n服务聊天已结束\n宋献@亿企赢总部\n员工零信任(原VPN)账号申请\nC题-标准退维...\n云盘相关问题处理群\n2026-7-11\n活动与会议技术支持\n☆>\n0题-诸询验厅\n张鹏:好的\n昨天\n员工IT支持与故障接修\n集团内部服务\n宋献@亿企赢总部\n运维支持入口\n看不见\n许松\n需求反馈用有\n2026-7-11\nIT支持知识库维护\ny\n服务聊天已结束\n昨天\n办公电脑系统重置\n★ >\n会议设备远检记录\n*>\n侯品品\n宋献\n打印设备述检记录\n备>\n服务聊天已结束\n昨天\n202\n保密设备远检记录\n☆>\n缪春德\n③\nC\n回\n8\nO\n昨天\n宋献@亿企赢总部\n服务聊天已结束\n好的手机可以打开我试试\n2026-7-11\n昊美玲\n服务聊天已结束\n星期四\n宋献@亿企赢总部\n还有别的问题吗?\n2026-7-11\n有问题请先问*智能IT助手*...\n品\n00\n陈文锋:哦哦\n星期四\nn\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\n企微服务商权限管理-亿企...\n李学鹏: [OK]\n星期四",
"Q 搜索\n+\n雷力\n重庆技术团队系统运维岗\n舒礼明\n查询路径:EHR--我的工资--我的月工资清单\n服务聊天已结束\n昨天\n(因数据安全需要,工资清单仅支持PC端查询)\nEHR链接: http://ehr.dc.servyou-it.com/HRis/Loginx.aspx\n献@亿企赢总部\n说明:\n026-7-11\n雷動\n0\n1、新疆部分同事及联营云工资清单请按照区域通知的为准。\n服务聊天已结束\n昨天\n2、登录EHR系统需连接公司内网,请先接入公司WI-FI或VPN;VPN清咨询企微服务号-桌面IT支\n持,发送VPN”即可获取申请和使用指南,如有疑问可转人工服务。\n宋献@亿企赢总部\n邵楚\n2026-7-11\n你好,如何连接vpn访问公司内网\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n您好,桌面IT支持【8222】为您服务\n93\n王芳1989\n2026-7-11\n服务聊天已结束\n昨天\n零信任aTurst——员工使用指南\n周颖慧\n宋献@\n郑明扬(已离职)创建\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026\n2026-7-11\n1. 账号申请开通\n根据安全管理要求VPN张号需要积据需要申请开通,VPN账号密码、认证\n刘海霞(联系此号)\n推立配置,与其他系统账号密码不同;\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n一站式运播平台-VPN号@解续\n2026-7-11\n1. 未开通账号员工可通过\nvtp/oevps.cc.serye-It.oom/tt/w..\n汤宇航\n服务聊天已结束\n昨天\n赢总部\n宋献@亿企赢总部\n2026-7-11\n可以先提交申请账号\n贾天培\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n安彤\n服务聊天已结束\n昨天\n图\n无法访问此网站\n宋献@亿\n宋梓琦\n\n2026-7-\n服务聊天已结束\n昨天\nuRss, wdin w\n99+\n18\n尚冬洋\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n20\n徐炜\n提交账号申请的链接都进不去呢\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n信露\n我没在总部办公\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026\n3.\n可以在手机企微端-【工作台】-【一站式运维平台】-【服务台】-【服务目\n闫莹颖\n昨天\n录】-【IT支持服务】下,进行【员工零信任(原vpn)账号申请】(无需登入vpn\n服务聊天已结束\n可直接打开)\n宋献@亿企赢总部\n2026-7-11\n一站式运维平台(v20260409...\n钱恒双\n昨天\n<\n服务目录\n服务聊天已结束\n请输入内容\n宋献@亿企赢总部\n张思琦(\n2026-7-11\n农藏的洗程\n员工服务入口\n服务聊天已结束\n昨天\nC题-她市服务\nIT设备升级与硬件维修\n☆>\n企赢总部\n32\nT支持服务\n待强设备网格渔入申请\n李圣伟(常用号)\n11\n昨天\nG题-标准运\n员工零信任(原VPN)账号申请\n服务聊天已结束\n项必成\n活动与会议技术支持\n★>\n0题-咨询转厅\n有问题请先问*智能IT助手\".\n员工IT支持与政障报修\n20\n宋献@亿企赢总部\n集团内部服务\n区\n庄欣邀请季永盛加入了群... 昨天\n2026-7-11\n运维支持入口\n需求反馈所有.\nIT支持知识库维护\n由\ny\n何小枚22674\n办公电脑系统重置\n服务聊天已结束\n昨天\n宋献@亿企赢\n会议设备通检记录\n☆>\n2026-7-11\n项必成\n打印设备述检记录\n☆>\n张鹏\n昨天\n保密设备远检记录\n☆>\n服务聊天已结束\n宋献@亿企赢总部\n2026-7-11\n③\n\n回\n8\nre\n云盘相关问题处理群\n张鹏:好的\n昨天\n好的手机可以打开 我试试\n宋献@亿企赢总部\n看不见\n许松\n2026-7-11\n宋献@亿企赢总部\n昨天\n2026-\n服务聊天已结束\n还有别的问题吗?\n没有了谢谢\n侯品品\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n欢迎您的咨询,后续遇到问题可以优先选择咨询\n缪春德\n智能IT助手(原桌面IT支持)\nO\n昨天\n宋献@亿企赢总部\n如果回复有什么错误可以反馈给我们,我们将持续优化为您提供更好的服务!\n服务聊天已结束\n2026-7-11\n昨天16:02\n吴美玲\n服务聊天已结束\n星期四\n宋献@亿企赢总部\n服务聊天已结束\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n有问题请先问\"智能IT助手\"..\n③\nx\n国\n00\n陈文锋:哦哦\n星期四\nN\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\n4\n企微服务商权限管理-亿企...\n李学鹏: [OK]\n星期四",
"Q 搜索\n+\n雷力\n重庆技术团队\n系统运维岗\n舒礼明\n查询路径:EHR--我的工资--我的月工资清单\n服务聊天已结束\n昨天\n(因数据安全需要,工资清单仅支持PC端查询)\nEHR链接: http://ehr.dc.servyou-it.com/HRIs/Loginx.aspx\n献@亿企赢总部\n说明:\n026-7-11\n雷動\n1、新疆部分同事及联营云工资清单清按照区域通知的为准\n服务聊天已结束\n昨天\n2、登录EHR系统需连接公司内网,请先接入公司WI-FI或VPN;VPN清咨询企微服务号-桌面IT支\n持,发送VPN”即可获取申请和使用指南,如有疑问可转人工服务。\n宋献@亿企赢总部\n邵楚\n2026-7-11\n服务聊天已结束\n你好,如何连接vpn访问公司内网\n昨天\n您好,桌面IT支持【8222】为您服务\n王芳1989\n宋献@亿企赢总部\n2026-7-11\n服务聊天已结束\n昨天\n零信任aTurst——员工使用指南\n周颖慧\n宋献@\n郑明扬(已离职)创建\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026\n2026-7-11\n1. 账号申请开通\n根据安全管理要求VPN张号需要根据需要章请开通,VPN账号密码、认证\n刘海霞(联系此号)\n独立配置,与其他系统账号密码不同;\n服务聊天已结束\n宋献@亿企赢总部\n一站式运播平台-VPN账号@话链续\n昨天\nvttp:/loevops.dc.seryu-I.omy/tM/w..\n2026-7-11\n1. 未开通账号员工可通过\n汤宇航\n服务聊天已结束\n昨天\n赢总部\n宋献@亿企赢总部\n2026-7-11\n可以先提交申请账号\n贾天培\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n安彤\n服务聊天已结束\n昨天\nB\n宋献@亿\n无法访同此网站\n宋梓琦\n2026-7-\nec\n服务聊天已结束\n昨天\nSIROTA\n99+\n尚冬洋\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n20\n徐炜\n提交账号申请的链接都进不去呢\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n10\n詹露\n我没在总部办公\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026\n闫莹颖\n3.\n可以在手机企微端-【工作台】-【一站式运维平台】-【服务台】-【服务目\n昨天\n录】-【IT支持服务】下,进行【员工零信任(原vpn)账号申请】(无需登入vpn\n服务聊天已结束\n可直接打开)\n宋献@亿企赢总部\n2026-7-11\n 一站式运维平台(v20260409...\n钱恒双\n昨天\n服务目录\n服务聊天已结束\n请输入内容\n宋献@亿企赢总部\n张思琦(\n2026-7-11\n收藏约武程\n昨天\n员工服务入口\n服务聊天已结束\nCE-地市服务\nIT设备升级与硬件维修\n企赢总部\n32\nT支持服务\n终端设备网福准入申请\n李圣伟(常用号)\n11\n昨天\n员工零信任(预VPN)班号申请\n服务聊天已结束\n0级-标准运.\n活动与会议技术支持\n0端-请询证件\n有问题请先问*智能IT助手\"...\n员工IT支持与故障按修\n20\n\n宋献@亿企赢总部\n集团内部服务\n庄欣邀请季永盛加入了群... 昨天\n2026-7-11\n运维支持入口\n需求反馈(所有.\nIT支持知识库维护\n查\ny\n何小枚22674\n昨天\n办公电脑系统重置\n★\n服务聊天已结束\n宋献@亿企赢\n会议设备送检记录\n☆>\n2026-7-11\n打印设备送检记录\n☆>\n张鹏\n服务聊天已结束\n昨天\n保密设备远检记录\n☆>\n宋献@亿企赢总部\n2026-7-11\n③\nG\n回\n8\nZ\n云盘相关问题处理群\n张鹏:好的\n昨天\n好的手机可以打开 我试试\n宋献@亿企赢总部\n看不见\n许松\n宋献@亿企赢总部\n2026-7-11\n昨天\n2026-\n服务聊天已结束\n还有别的问题吗?\n没有了谢谢\n侯品品\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n欢迎您的咨询,后续遇到问题可以优先选择咨询\n缪春德\n智能IT助手(原桌面IT支持)\nHO\n昨天\n宋献@亿企赢总部\n如果回复有什么错误可以反馈给我们,我们将持续优化为您提供更好的服务!\n服务聊天已结束\n2026-7-11\n昨天16:02\n吴美玲\n服务聊天已结束\n星期四\n宋献@亿企赢总部\n服务聊天已结束\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n有问题请先问\"智能IT助手\"...\n品\n同\n00\n陈文锋:哦哦\n星期四\n5\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\n4\n企微服务商权限管理-亿企...\n李学鹏: [OK]\n星期四"
],
"screenshot_count": 3
},
{
"index": 3,
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c3_01_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c3_02.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c3_03.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c3_04.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c3_05.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\chat_c3_06.png"
],
"ocr_texts": [
"Q 搜索\n+\n二土目\n舒礼明\n事事有回应件件有着落\n服务聊天已结束\n昨天\n昨天14:58\n献@亿企赢总部\n宋献@亿企赢总部\n雷力\n2026-7-11\n服务聊天已结束\n昨天\n亲亲我这个文件为什么都删不掉\n企赢总部\n邵楚\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\neas\n王芳1989\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n您好,桌面IT支持【8222】为您服务\n周颖慧\n高总部\n昨天\n文件夹正在使用\n×\n服务聊天已结束\n宋献@亿企赢总\n操作无法完成,因为其中的文件夹或文件已在另一程序中打开\n2026-7-11\n刘海霞(联系此号)\n服务聊天已结束\n昨天\n请关闭该文件夹或文件,然后重试。\neas\n宋献@亿企赢总部\n创建日期:2023-06-13 10:39\n汤宇航\n2026-7-11\n服务聊天已结束\n昨天\n重试(R)\n取消\n亿企赢总部\n7-11\n贾天培\n简略信息\n服务聊天已结束\n昨天\n亿企\n安彤\n我没有在用的文件呢\n7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n宋梓琦\n宋献@亿企赢总部\n金蝶吗\n服务聊天已结束\n昨天\n2026-7-11\n是的\n2026-7-\n99+\n尚冬洋\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n你重启一下电脑再删除一下试试\n徐炜\n试过很多次了都不行我都给忘记了\n赢总部\n服务聊天已结束\n昨天\n2026-7-11\n宋献@亿企赢总部\n10\n詹露\n2026-7-11\n你金蝶还在用吗\n服务聊天已结束\n昨天\n没有的\n宋献@亿企赢总部\n2\n闫莹颖\n2026-7-11\n服务聊天已结束\n昨天\n系统也没开过呢\n钱恒双\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n那就要看一下系统进程有没有相关的进程了\n您能帮我远程看看么\n张思琦(\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n或者你试试卸载金蝶之后再删除\n李圣伟(常用号)\n企赢总部\n11\n/2部\n品念限\n天\n全1\nb-7-11\n服务聊天已结束\n20\n有问题请先问*智能IT助手*...\n7\n庄欣邀请季永盛加入了群... 昨天\n宋献@亿企赢总部\n昨天15:20\n宋献@亿企赢总部\n2026-7-11\n邵楚进入了服务聊天\n2026-7-11\n何小枚22674\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n现在可以吗?\n张鹏\n2026-7-11\n服务聊天已结束\n昨天\n已经卸载完成了\n还是删不掉\n宋献@亿企赢总部\nPZ\n云盘相关问题处理群\n2026-7-11\n张鹏:好的\n昨天\n许松\n宋献@亿企赢总部\n火绒有吗?\n看不见\n宋献@亿企赢\n服务聊天已结束\n昨天\n2026-7-11\n2026-7-11\n安全工具\n2日播中心\n三\nX\n侯品品\n包含属习修复,系统修复等各项扩展工具\n服务聊天已结束\n昨天\n宋献\n202\n火\n+\n缪春德\n流月修复\n系统修复\n弹出拦机\nHO\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n8\n2026-7-11\n8\n吴美玲\n启动项管理\n垃圾清理\n文件粉碎\ntB\n服务聊天已结束\n星期四\n宋献@亿企赢总部\n円\n2026-7-11\n有问题请先问\"智能IT助手\"..\n石键管理\n新网修复\n流量监控\n陈文锋:哦哦\nx\n星期四\n同\n\n00\nN\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\n4\n企微服务商权限管理-亿企...\n李学鹏: [OK]\n星期四",
"十\n品定\n舒礼明\n事事有回应件件有着落\n服务聊天已结束\n昨天\n献@亿企赢总部\n雷力\n宋献@亿企赢总部\n金蝶吗\n2026-7-11\n服务聊天已结束\n昨天\n2026-7-11\n是的\n邵楚\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n宋献@亿企赢总部\n你重启一下电脑再删除一下试试\n王芳1989\n试过很多次了都不行我都给忘记了\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n周颖慧\n服务聊天已结束\n昨天\n@亿企赢总部\n你金蝶还在用吗\n没有的\n26-7-11\n宋献@亿企赢总部\n刘海霞(联系此号)\n2026-7-11\n服务聊天已结束\n昨天\n系统也没开过呢\n宋献@亿企赢总部\n2026-7-11\n汤宇航\n宋献@亿企赢总部\n2026-7-11\n服务聊天已结束\n昨天\n全赢总部\n那就要看一下系统进程有没有相关的进程了\n贾天培\n您能帮我远程看看么\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n安彤\n宋献@亿企赢总部\n或者你试试卸载金蝶之后再删除\n服务聊天已结束\n昨天\n2026-7-11\n宋献\n昨天15:14\n2026-7-\n宋梓琦\n服务聊天已结束\n服务聊天已结束\n昨天\n宋献@亿企\n昨天15:20\n宋献@亿\n2026-7-11\n2026-7-\n99+\n尚冬洋\n邵楚进入了服务聊天\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n2026-7-11\n现在可以吗?\n徐炜\n昨天\n已经卸载完成了\n服务聊天已结束\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n10\n詹露\n还是删不掉\n2026-7-11\n服务聊天已结束\n昨天\nE\n闫莹颖\n宋献@亿企赢总部\n火绒有吗?\n昨天\n2026-7-11\n服务聊天已结束\n安全工具\n2日连接中心\n三\n钱恒双\n宋献@亿企赢总部\n昨天\n2026-7-11\n包含漏习修复,系统修复等各项扩震工具\n服务聊天已结束\n火\n张思琦(\n宋献@亿企赢总部\n习修复\n系统修复\n弹出二数\n服务聊天已结束\n昨天\n2026-7-11\n88\n32\n李圣伟(常用号)\n企赢总部\n启助项管理\n垃圾清理\n文件粉碎\n服务聊天已结束\n昨天\n11\nθ\n有问题请先问\"智能IT助手\".\n右键管理\n新网修复\n流量监控\n9\n庄欣邀请季永盛加入了群... 昨天\n宋献@亿企赢总部\n2026-7-11\n何小枚22674\n服务聊天已结束\n昨天\n用这个文件粉碎试试\n宏献@亿企赢总部\n我试试看\n张鹏\n2026-7\n服务聊天已结束\n昨天\n火城安全-文件粉碎\nX\n正在粉碎,请稍候...\n2\n影停\n宋献@亿企赢总部\n云盘相关问题处理群\n正在粉钟: C\\Users\\such\\Desktop\\eas\n2026-7-11\n张鹏:好的\n昨天\n名称\n路径\n操作\nChUserslsuchDesktop\n许松\n6种中\n看不见\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n侯品品\n服务聊天已结束\n昨天\n缪春德\nHO\n服务聊天已结束\n昨天\n新火\n\n排加文件\n宋献@亿企赢总部\n2026-7-11\n吴美玲\n火城安全-文件粉碎\n服务聊天已结束\n星期四\n宋献@亿企赢总\n有问题请先问\"智能IT助手\"...\n2026-7-11\nx\n目\n00\n陈文锋:哦哦\n星期四\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\na\n企微服务商权限管理-亿企...\n李学鹏:[OK]\n星期四",
"搜索\n+\n部定\n高四区服分部(和南)\n主管\n舒礼明\n事事有回应件件有着落\n服务聊天已结束\n昨天\n昨天15:14\n献@亿企赢总部\n雷力\n服务聊天已结束\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n服务聊天已结束\n昨天\n昨天15:20\n邵楚\n宋献@亿企赢总部\n邵楚进入了服务聊天\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n2026-7-11\n现在可以吗?\n93\n王芳1989\n已经卸载完成了\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n周颖慧\n还是删不掉\n服务聊天已结束\n昨天\n宋献@忆企赢总部\n2026-7-11\n宋献@亿企赢总部\n2026-7-11\n火绒有吗?\n刘海霞(联系此号)\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n安全工具\n2日连接中心\ni\nx\n汤宇航\n2026-7-11\n包含属习修复,系统修复等各项扩展工具\n服务聊天已结束\n昨天\n全赢总部\nk\n贾天培\n混月修复\n系统修复\n弹国载\n服务聊天已结束\n昨天\n88\n安彤\n宋献@亿企赢总部\n启动项管理\n垃圾清理\n文件粉碎\n服务聊天已结束\n昨天\n2026-7-11\n宋梓琦\n右键管理\n新网修复\n流量监控\n服务聊天已结束\n昨天\n宋献@亿企赢总\n2026-7-11\n99+\n尚冬洋\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n用这个文件粉碎试试\n宋献@亿企赢总部\n2026-7-11\n2026-7-11\n我试试看\n徐炜\n服务聊天已结束\n昨天\n火绒安全-文件粉碎\n宋献@亿企赢总部\n正在粉碎,请稍候..\n10\n暂师\n2026-7-11\n詹露\n正在粉钟: C\\Users\\such\\Desktop)eas\n服务聊天已结束\n昨天\n名称\n路经\n操作\nCUsers/yuchDesktop\n8种中\nE\n闫莹颖\n服务聊天已结束\n昨天\n钱恒双\n宋献@亿企赢总部\n昨天\n2026-7-11\n服务聊天已结束\n张思琦(\n昨天\n宋献@亿企赢总部\n服务聊天已结束\n\n添加文件\n2026-7-11\n32\n李圣伟(常用号)\n火域安全-文件粉碎\n - ×\n亿企赢总部\n服务聊天已结束\n昨天\n-7-11\n2\n有问题请先问*智能IT助手*...\n庄欣邀请季永盛加入了群... 昨天\n0\n宋献@亿企赢总部\n2026-7-11\n何小枚22674\n昨天\n粉碎失败\n服务聊天已结束\n共解碎1个文件,全部粗碎失数 查面洋情\n宋献@亿\n张鹏\n完成\n2026-7\n服务聊天已结束\n昨天\n宋\n宋献@亿企赢总部\n云盘相关问题处理群\n2026-7-11\n张鹏:好的\n昨天\n\n看不见\n许松\n为啥呀\n宋献@亿企赢总部\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n2026-7-11\n侯品品\n有向日葵吗?我远程试试\n昨天\n宋献@亿企赢总部\n服务聊天已结束\n没呢我现在下一夏\n2026-7-11\n缪春德\nOF\n昨天15:35\n服务聊天已结束\n\n昨天\n宋献@亿企赢总部\n宋献@亿企赢总部\n搜索/法验设备\n618返场高性期版1年送6\n经典\n50\n2026-7-11\n昊美玲\n服务聊天已结束\n星期四\n远程协助本机\n本机识划\n单次验证码\n宋献@亿企赢总音\n有问题请先问\"智能IT助手\"..\n2026-7-11\nO\n品\n目\n00\n陈文锋:哦哦\n星期四\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\nR\n12\n企微服务商权限管理-亿企...\nON\n李学鹏: [OK]\n星期四",
"Q 搜索\n+\n邵楚广西区域服务部(兼湖南)\n主管\n事事有回应件件有着落\n舒礼明\n服务聊天已结束\n昨天\n献@亿企赢总部\n雷力\n右键管理\n新网修复\n流量监控\n2026-7-11\n服务聊天已结束\n昨天\n邵楚\n宋献@亿企赢总部\n2026-7-11\n2026-7-\n服务聊天已结束\n昨天\n用这个文件粉碎试试\n王芳1989\n我试试看\n服务聊天已结束\n昨天\n火域安全·文件粉碎\nx\n周颖慧\n正在粉碎,请稍候...\n暂停\n服务聊天已结束\n正在船钾: C\\Users\\such\\Desktop\\eas\n宋献@亿企赢总部\n昨天\n操作\n2026-7-11\n名称\n路径\n刘海霞(联系此号)\nChUsenlsuchDesktop\nCgi\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n汤宇航\n服务聊天已结束\n昨天\n赢总部\n贾天培\n服务聊天已结束\n昨天\n船种而更\n\n湖加文件\n安彤\n宋献@亿企赢总部\n2026-7\n - ×\n2026-7-11\n服务聊天已结束\n昨天\n火绒安全-文件粉碎\n宋梓琦\n宋献@亿\n服务聊天已结束\n昨天\n2026-7-\n0\n99+\n尚冬洋\n服务聊天已结束\n昨天\n宋20\n宋献@亿企赢总部\n粉碎失败\n2026-7-11\n共粉碎1个文件,全部粉碎失数 查看详情\n徐炜\n昨天\n完成\n服务聊天已结束\n宋献@亿企赢总部\n10\n2026-7-11\n詹露\n服务聊天已结束\n昨天\n部\n数终原史\n闫莹颖\n2026-7-11\nE\n为啥呀\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n宋献@亿企赢总部\n钱恒双\n2026-7-11\n2026-7-11\n有向日葵吗?我远程试试\n服务聊天已结束\n昨天\n没呢我现在下一夏\n张思琦(\n宋献@亿企赢总部\n昨天\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天15:35\n2026-7-11\n搜索/值验设备\n618返场高性端版1年送6...\n32\n经典\n新版\n李圣伟(常用号)\n亿企赢总部\n服务聊天已结束\n昨天\n-7-11\n远程协助本机\n有问题请先问\"智能IT助手\"...\n本机识别码\n单次脸证码\n128 089 9530\n庄欣邀请季永盛加入了群... 昨天\n宋献@亿企赢总部\n远程协助他人\n2026-7-11\n何小枚22674\n服务聊天已结束\n昨天\n请输入伙伴识别\n验证码(可为空)\n连接\n远程桌面\n远程文件\n宋献@亿\n张鹏\n618返场\n2026-7\n服务聊天已结束\n昨天\n高性能版\n买1年送6月\n宋献@亿企赢总部\n云盘相关问题处理群\n2026-7-11\n张鹏:好的\n昨天\n看不见\n许松\n我的识别码:1280899530\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n使用向日葵即可对我发起远程协助\n2026-7-11\n向日葵下载地址:http://url.oray.com/tGJdas/\n侯品品\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n向日葵远程控制软件下载_向日葵远程控...\n2026-7-11\n贝锐向日葵远程控制软件官方下载中\n缪春德\n心,提供个人版、企业版、SDK及信...\n10\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7\n2026-7-11\n昊美玲\n昨天15:45\n服务聊天已结束\n星期四\n宋献@亿企赢总部\n服务聊天已结束\n2026-7-11\n宋献@亿企赢总音\n有问题请先问*智能IT助手*...\n禁进入了服验工\n2026-7-11\nx\n同\n00\n陈文锋:哦哦\n星期四\n5\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\nR\n企微服务商权限管理-亿企...\n李学鹏:[OK]\n星期四",
"Q 搜索\n邵楚\n广西区域服务部(兼湖南)\n主管\n+\n事事有回应件件有着落\n舒礼明\n路径\n操作\n服务聊天已结束\n昨天\n名称\nCUsers/suchDesktop\n种中\neas\n献@亿企赢总部\n026-7-11\n雷力\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n邵楚\n2026-7-11\n服务聊天已结束\n昨天\n王芳1989\n\n添加文件\n服务聊天已结束\n昨天\n火城安全-文件粉碎\n - ×\n周颖慧\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n刘海霞(联系此号)\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n汤宇航\n粉碎失败\n2026-7-11\n服务聊天已结束\n昨天\n共粉碎1个文件,全部粒碎失数 查石洋情\n亿企赢总部\n1\n完成\n7-11\n贾天培\n服务聊天已结束\n昨天\n安彤\n宋献@亿企赢总部\n\n服务聊天已结束\n昨天\n2026-7-11\n为啥呀\n宋梓琦\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n宋献@亿\n有向日葵吗?我远程试试\n99+\n尚冬洋\n昨天\n没呢我现在下一夏\n宋献@亿企赢总部\n服务聊天已结束\n2026-7-11\n徐炜\n昨天15:35\n企赢总部\n服务聊天已结束\n昨天\n搜索/连接设备\n618返场高性产版1年送6...\n经典\n1吸\n宋献@亿企赢总部\n10\n信露\n2026-7-11\n远程协助本机\n服务聊天已结束\n昨天\n本机识码\n单次验证码\n128 089 9530\n闫莹颖\n服务聊天已结束\n昨天\n远程协助他人\n钱恒双\n请输入伙伴识司\n验证码(可为)\n连接\n宋献@亿企赢总部\n昨天\n远程桌面\n远程文件\n2026-7-11\n服务聊天已结束\n618通场\n高性能版\n张思琦(\n买1年送6月\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n李圣伟(常用号)\n企\n亿企赢总部\n服务聊天已结束\n昨天\n11\n2026-7-11\n我的识别码:1280899530\n9\n有问题请先问*智能IT助手*...\n使用向日葵即可对我发起远程协助\n\n庄欣邀请季永盛加入了群... 昨天\n向日葵下载地址:http://url.oray.com/tGJdas/\n宋献@亿企赢总部\n向日葵远程控制软件下载 向日葵远程控..\n2026-7-11\n何小枚22674\n服务聊天已结束\n昨天\n贝锐向日葵远程控制软件官方下载中\n心,提供个人版、企业版、SDK及信...\n献@亿企赢总部\n2026-7-11\n宋献@亿\n张鹏\n2026-7\n服务聊天已结束\n昨天\n昨天15:45\n宋献@亿企赢总部\n宋献@亿企赢总部\n云盘相关问题处理群\n2026-7-11\n服务聊天已结束\n2026-7-11\n张鹏:好的\n昨天\n邵楚进入了服务聊天\n看不见\n许松\n宋献@亿企赢总部\n昨天\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n2026-7-11\n好了\n好的麻烦亲亲了\n侯品品\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n026-7-11\n欢迎您的咨询,后续遇到问题可以优先选择咨询\n缪春德\n智能IT助手(原桌面IT支持)\nHOF\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n如果回复有什么错误可以反馈给我们,我们将持续优化为您提供更好的服务!\n2026-7-11\n昨天15:58\n2026-1\n吴美玲\n服务聊天已结束\n星期四\n服务聊天已结束\n宋献@亿企赢总部\n宋献@亿企赢总音\n2026-7-11\n有问题请先问\"智能IT助手\"...\n2026-7-11\n陈文锋:哦哦\n星期四\nO\nX\n同\n00\nN\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\n企微服务商权限管理-亿企..\n李学鹏:[OK]\n星期四",
"Q 搜索\n邵楚\n广西区域服务部(兼湖南)\n主管\n十\n事事有回应件件有着落\n舒礼明\n路径\n操作\n服务聊天已结束\n昨天\n名称\nCUserslsuchDesktop\n中\nAas\n献@亿企赢总部\n南\n026-7-11\n雷力\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n邵楚\n2026-7-11\n服务聊天已结束\n昨天\n93\n王芳1989\n添部文件\n服务聊天已结束\n昨天\n和牌历史\n周颖慧\n火城安全-文件粉碎\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n刘海霞(联系此号)\n服务聊天已结束\n昨天\n0\n宋献@亿企赢总部\n汤宇航\n粉碎失败\n2026-7-11\n服务聊天已结束\n昨天\n共粉碎1个文件,全部阳鲜失数 查看详情\n亿企赢总部\n完成\n7-11\n贾天培\n服务聊天已结束\n昨天\n安彤\n宋献@亿企赢总部\n历\n服务聊天已结束\n昨天\n2026-7-11\n为啥呀\n宋梓琦\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n宋献@亿\n有向日葵吗?我远程试试\n99+\n尚冬洋\n服务聊天已结束\n昨天\n没呢我现在下一夏\n宋献@亿企赢总部\n2026-7-11\n徐炜\n昨天15:35\n企赢总部\n服务聊天已结束\n昨天\n搜术/连接设备\n618返场高性期版1年送6..\n经典\n新级\n0\n宋献@亿企赢总部\n10\n詹露\n2026-7-11\n远程协助本机\n服务聊天已结束\n昨天\n本机识的\n单次验证码\n128 089 9530\n闫莹颖\n服务聊天已结束\n昨天\n远程协助他人\n钱恒双\n请输入伙伴识别解\n验证码(可为空)\n连接\n宋献@亿企赢总部\n昨天\n识程桌面\n远程文件\n2026-7-11\n服务聊天已结束\n618商场\n高性能版\n张思琦(\n买1年送6月\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n2026-7-11\n李圣伟(常用号)\n亿企赢总部\n服务聊天已结束\n昨天\n2026-7-11\n我的识别码:1280899530\n2\n有问题请先问*智能IT助手*...\n使用向日葵即可对我发起远程协助\n\n庄欣邀请季永盛加入了群... 昨天\n向日葵下载地址:http://url.oray.com/tGJdas/\n宋献@亿企赢总部\n向日葵远程控制软件下载 向日葵远程控...\n2026-7-11\n何小枚22674\n服务聊天已结束\n昨天\n贝锐向日葵远程控制软件官方下载中\n心,提供个人版、企业版、SDK及信...\n献@亿企赢总部\n2026-7-11\n宋献@亿\n张鹏\n2026-7\n服务聊天已结束\n昨天\n昨天15:45\n宋献@亿企赢总部\n宋献@亿企赢总部\n云盘相关问题处理群\n2026-7-11\n服务聊天已结束\n2026-7-11\n张鹏:好的\n昨天\n邵楚进入了服务聊天\n看不见\n许松\n宋献@亿企赢总部\n2026-7-11\n宋献@亿企赢总部\n服务聊天已结束\n昨天\n好了\n2026-7-11\n好的麻烦亲亲了\n侯品品\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n026-7-11\n欢迎您的咨询,后续遇到问题可以优先选择咨询\n缪春德\n智能IT助手(原桌面IT支持)\nO\n服务聊天已结束\n昨天\n宋献@亿企赢总部\n如果回复有什么错误可以反馈给我们,我们将持续优化为您提供更好的服务!\n2026-7-11\n昨天15:58\n2026-7\n吴美玲\n服务聊天已结束\n星期四\n服务聊天已结束\n宋献@亿企赢总部\n宋献@亿企赢总音\n2026-7-11\n有问题请先问\"智能IT助手\"...\n2026-7-11\n陈文锋:哦哦\n星期四\n①\nX\n目\n00\nN\n叶红卫\n服务聊天已结束\n星期四\n曾刘拴\n服务聊天已结束\n星期四\nH\n企微服务商权限管理-亿企...\n李学鹏: [OK]\n星期四"
],
"screenshot_count": 6
}
]
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

+7
View File
@@ -0,0 +1,7 @@
13834466
2560
-323
1080
1920
3240
637
Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

+570
View File
@@ -0,0 +1,570 @@
#!/usr/bin/env python3
"""
IM Chat Export v6 - AHK + BitBlt + OCR
Uses AutoHotkey for window activation/scrolling (bypasses Python foreground lock),
PrintWindow for layout analysis, BitBlt for content capture, PaddleOCR for text.
Usage:
python im_chat_export_v6.py --start 1 --count 3 --output ./chat_export
python im_chat_export_v6.py --start 4 --count 5 --deep --output ./chat_export
"""
import os
import sys
import time
import json
import ctypes
import subprocess
import argparse
import numpy as np
from pathlib import Path
from datetime import datetime
# --- win32 imports (do NOT import pyautogui - it pollutes DPI awareness) ---
import win32gui
import win32ui
import win32con
import win32api
from PIL import Image, ImageChops, ImageStat, ImageDraw
# --- Constants ---
AHK_EXE = r"C:\Program Files\AutoHotkey\v2\AutoHotkey64.exe"
AHK_SCRIPT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "scroll_helper.ahk")
WINDOW_TITLE_KEYWORD = "智能IT助手"
# PW_RENDERFULLCONTENT = 2
PW_RENDERFULLCONTENT = 2
def find_im_window():
"""Find the WeChat Work IM chat window by title."""
results = []
def callback(hwnd, _):
if win32gui.IsWindowVisible(hwnd):
title = win32gui.GetWindowText(hwnd)
if title and WINDOW_TITLE_KEYWORD in title:
results.append((hwnd, title))
return True
win32gui.EnumWindows(callback, None)
return results
def capture_printwindow(hwnd, save_path=None):
"""Capture window content via PrintWindow API - works even if window not in foreground."""
left, top, right, bottom = win32gui.GetClientRect(hwnd)
width = right - left
height = bottom - top
if width <= 0 or height <= 0:
return None
hwnd_dc = win32gui.GetDC(hwnd)
mfc_dc = win32ui.CreateDCFromHandle(hwnd_dc)
save_dc = mfc_dc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(mfc_dc, width, height)
save_dc.SelectObject(bmp)
result = ctypes.windll.user32.PrintWindow(hwnd, save_dc.GetSafeHdc(), PW_RENDERFULLCONTENT)
bmpinfo = bmp.GetInfo()
bmpstr = bmp.GetBitmapBits(True)
img = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']),
bmpstr, 'raw', 'BGRX', 0, 1)
if save_path:
img.save(save_path)
# Cleanup
win32gui.DeleteObject(bmp.GetHandle())
save_dc.DeleteDC()
mfc_dc.DeleteDC()
win32gui.ReleaseDC(hwnd, hwnd_dc)
return img
def capture_bitblt(hwnd, save_path=None):
"""Capture screen region matching window client area via BitBlt - shows actual visible content."""
cli_left, cli_top = win32gui.ClientToScreen(hwnd, (0, 0))
left, top, right, bottom = win32gui.GetClientRect(hwnd)
width = right - left
height = bottom - top
if width <= 0 or height <= 0:
return None
screen_dc = win32gui.GetDC(0)
mfc_dc = win32ui.CreateDCFromHandle(screen_dc)
save_dc = mfc_dc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(mfc_dc, width, height)
save_dc.SelectObject(bmp)
save_dc.BitBlt((0, 0), (width, height), mfc_dc, (cli_left, cli_top), win32con.SRCCOPY)
bmpinfo = bmp.GetInfo()
bmpstr = bmp.GetBitmapBits(True)
img = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']),
bmpstr, 'raw', 'BGRX', 0, 1)
if save_path:
img.save(save_path)
# Cleanup
win32gui.DeleteObject(bmp.GetHandle())
save_dc.DeleteDC()
mfc_dc.DeleteDC()
win32gui.ReleaseDC(0, screen_dc)
return img
def images_diff(img1, img2):
"""Calculate difference ratio between two images."""
if img1.size != img2.size:
return 1.0
diff = ImageChops.difference(img1, img2)
stat = ImageStat.Stat(diff)
return sum(stat.mean) / len(stat.mean) / 255.0
def analyze_layout(img):
"""
Analyze PrintWindow screenshot to find contact list rows.
Uses horizontal projection of left-column content (avatars + text).
"""
arr = np.array(img)
h, w = arr.shape[:2]
# Sample background color from a "safe" empty area (top-right corner far from content)
# Or use the first column (left edge - often margin/background)
sample_y1, sample_y2 = 0, 30
sample_x1, sample_x2 = w - 100, w - 5
sample = arr[sample_y1:sample_y2, sample_x1:sample_x2]
# Use mean as background (sample region is likely toolbar/empty)
bg_color = tuple(sample.reshape(-1, 3).mean(axis=0).astype(int))
bg_r, bg_g, bg_b = bg_color
print(f" [布局] 背景采样区域 ({sample_x1},{sample_y1})-({sample_x2},{sample_y2})")
print(f" [布局] 背景色 RGB: ({bg_r}, {bg_g}, {bg_b})")
# Build a vertical gradient row by looking for rows with high horizontal variance
# (rows with text/avatars have high color variance, blank rows don't)
# We focus on the left panel (contact list, 0-280px)
panel = arr[:, 0:280].astype(int)
row_var = panel.std(axis=(1, 2)) # std across pixels in each row
# Threshold: rows with std > 15 (some color variation) are content
is_content = row_var > 15
# Find content blocks
blocks = []
in_block = False
block_start = 0
gap_count = 0
min_height = 30 # Min contact row height
max_gap = 6 # Allow small gaps within a block
for y in range(h):
if is_content[y]:
if not in_block:
in_block = True
block_start = y
gap_count = 0
else:
if in_block:
gap_count += 1
if gap_count > max_gap:
block_height = y - gap_count - block_start + 1
if block_height >= min_height:
blocks.append((block_start, y - gap_count))
in_block = False
gap_count = 0
if in_block:
block_height = h - block_start
if block_height >= min_height:
blocks.append((block_start, h))
print(f" [布局] 联系人行(高方差检测): {len(blocks)}")
# If we got too few blocks, the window might not be a chat list. Return all blocks.
return blocks, bg_r * 65536 + bg_g * 256 + bg_b
class IMChatExporterV6:
def __init__(self, hwnd, output_dir):
self.hwnd = hwnd
self.output_dir = Path(output_dir)
self.output_dir.mkdir(parents=True, exist_ok=True)
# Window geometry
self.cli_left, self.cli_top = win32gui.ClientToScreen(hwnd, (0, 0))
_, _, self.cli_width, self.cli_height = win32gui.GetClientRect(hwnd)
# Contact list params (estimated, refined by analyze_layout)
self.list_width = 280
# Title bar offset: contacts in window may be hidden behind title bar
# Real contact list starts BELOW title bar (about 50px on top + search bar ~40px)
# So contact #1's real position is approximately client_y + 90
self.title_bar_offset = 90
# Screen coordinates for click targets
self.contact_x = self.cli_left + self.list_width // 2
self.chat_x = self.cli_left + self.list_width + (self.cli_width - self.list_width) // 2
self.chat_y = self.cli_top + self.cli_height // 2
self.contacts = []
self._ocr_engine = None
print(f" 窗口句柄: 0x{hwnd:x}")
print(f" 客户区: {self.cli_width}x{self.cli_height}")
print(f" 屏幕起点: ({self.cli_left}, {self.cli_top})")
print(f" 联系人点击X: {self.contact_x}")
print(f" 聊天区域中心: ({self.chat_x}, {self.chat_y})")
def ahk_run(self, *args):
"""Run AHK script with given action and arguments."""
cmd = [AHK_EXE, AHK_SCRIPT] + [str(a) for a in args]
try:
result = subprocess.run(cmd, capture_output=True, timeout=30, text=True)
if result.returncode != 0:
print(f" [AHK] 返回码={result.returncode}, stderr={result.stderr[:200]}")
return result.returncode == 0
except subprocess.TimeoutExpired:
print(f" [AHK] 超时!")
return False
except Exception as e:
print(f" [AHK] 错误: {e}")
return False
def activate_window(self):
"""Activate window using AHK (handles foreground lock)."""
print(" [AHK] 激活窗口...")
self.ahk_run("activate")
time.sleep(0.5)
def analyze_contacts(self):
"""Use BitBlt to capture and analyze layout for contact positions."""
print(" [分析] BitBlt 截图 + 布局分析...")
# Capture via BitBlt (reflects actual visible screen content)
pw_path = self.output_dir / "layout_analysis.png"
img = capture_bitblt(self.hwnd, str(pw_path))
if img is None:
print(" [分析] BitBlt 失败!")
return []
blocks, bg_color = analyze_layout(img)
print(f" [分析] 背景色: #{bg_color:06X}")
print(f" [分析] 检测到 {len(blocks)} 个内容块")
# Filter blocks that are in the contact list area (left 280px)
arr = np.array(img)
bg_rgb = np.array([(bg_color >> 16) & 0xFF, (bg_color >> 8) & 0xFF, bg_color & 0xFF])
contact_blocks = []
for i, (y1, y2) in enumerate(blocks):
# Check if this block has content in the left panel (contact list area)
left_region = arr[y1:y2, 0:self.list_width]
diff_arr = np.abs(left_region.astype(int) - bg_rgb)
non_bg = np.sum(np.any(diff_arr > 30, axis=2))
total = left_region.shape[0] * left_region.shape[1]
if total > 0 and non_bg / total > 0.03:
center_y = (y1 + y2) // 2
screen_y = self.cli_top + center_y
contact_blocks.append({
'index': len(contact_blocks) + 1,
'client_y1': y1,
'client_y2': y2,
'center_y': center_y,
'screen_x': self.contact_x,
'screen_y': screen_y,
'height': y2 - y1
})
# Draw annotated layout
annotated = img.copy()
draw = ImageDraw.Draw(annotated)
for c in contact_blocks:
y1, y2 = c['client_y1'], c['client_y2']
draw.rectangle([0, y1, self.list_width, y2], outline="red", width=3)
draw.text((5, y1 + 2), f"#{c['index']}", fill="red")
annotated.save(str(self.output_dir / "layout_annotated.png"))
self.contacts = contact_blocks
print(f" [分析] 联系人列表: {len(contact_blocks)}")
for c in contact_blocks:
print(f" #{c['index']}: Y={c['center_y']} (screen {c['screen_y']}) H={c['height']}")
return contact_blocks
def click_contact(self, contact):
"""Click on a contact using AHK."""
print(f" [AHK] 点击联系人 #{contact['index']} ({contact['screen_x']}, {contact['screen_y']})...")
self.ahk_run("click_contact",
contact['screen_x'], contact['screen_y'],
self.chat_x, self.chat_y)
def capture_chat(self, name_suffix=""):
"""Capture current chat via BitBlt."""
path = self.output_dir / f"chat_{name_suffix}.png"
img = capture_bitblt(self.hwnd, str(path))
return img, path
def scroll_to_top(self):
"""Scroll chat to top using AHK."""
print(" [AHK] 滚动到顶部...")
self.ahk_run("scroll_top", self.chat_x, self.chat_y)
def scroll_down(self, clicks=5):
"""Scroll down using AHK."""
self.ahk_run("scroll_down", clicks, self.chat_x, self.chat_y)
def export_contact(self, contact, deep=False):
"""Export a single contact's complete chat history."""
idx = contact['index']
print(f"\n{'='*60}")
print(f" 导出联系人 #{idx}")
print(f"{'='*60}")
# Step 1: Click contact and scroll to top (AHK handles activation + click + scroll)
self.click_contact(contact)
# Step 2: Capture initial screenshot (should be at top)
img_prev, path_prev = self.capture_chat(f"c{idx}_01_top")
print(f" [截图] 初始截图: {path_prev.name}")
screenshots = [path_prev]
max_scrolls = 30 if deep else 10
no_change_count = 0
# Step 3: Scroll down and capture
for i in range(max_scrolls):
self.scroll_down(5)
time.sleep(0.3)
img_curr, path_curr = self.capture_chat(f"c{idx}_{i+2:02d}")
diff = images_diff(img_prev, img_curr)
print(f" [截图] #{i+2} 差异={diff:.4f} {'✓变化' if diff > 0.02 else '~相同'}")
if diff < 0.005:
no_change_count += 1
if no_change_count >= 2:
print(f" [结束] 连续 {no_change_count} 次无变化,停止滚动")
# Remove the duplicate screenshot
path_curr.unlink(missing_ok=True)
break
else:
no_change_count = 0
screenshots.append(path_curr)
img_prev = img_curr
print(f" [完成] 共 {len(screenshots)} 张截图")
# Step 4: OCR
ocr_texts = []
print(f" [OCR] 开始文字识别...")
ocr = self.get_ocr()
if ocr:
for j, shot_path in enumerate(screenshots):
try:
# PaddleOCR 3.x: use predict() without cls argument
result = ocr.predict(str(shot_path))
lines = []
# New API returns list of dicts with rec_text field
if result:
for page in result:
rec_texts = page.get('rec_texts', [])
lines.extend(rec_texts)
ocr_texts.append('\n'.join(lines))
print(f" [OCR] 截图{j+1}: {len(lines)} 行文字")
except Exception as e:
ocr_texts.append(f"[OCR错误: {e}]")
print(f" [OCR] 截图{j+1} 失败: {e}")
# Step 5: Save contact data
contact_data = {
'index': idx,
'screenshots': [str(p) for p in screenshots],
'ocr_texts': ocr_texts,
'screenshot_count': len(screenshots)
}
return contact_data
def get_ocr(self):
"""Lazy-load PaddleOCR engine."""
if self._ocr_engine is None:
print(" [OCR] 初始化 PaddleOCR...")
try:
# Disable oneDNN to avoid ConvertPirAttribute2RuntimeAttribute error
import os
os.environ['FLAGS_use_mkldnn'] = '0'
from paddleocr import PaddleOCR
# PaddleOCR 3.x: use_textline_orientation replaces use_angle_cls
self._ocr_engine = PaddleOCR(use_textline_orientation=True, lang='ch', enable_mkldnn=False)
print(" [OCR] 引擎就绪")
except ImportError:
print(" [OCR] PaddleOCR 未安装,跳过文字识别")
return None
except Exception as e:
print(f" [OCR] 初始化失败: {e}")
return None
return self._ocr_engine
def generate_html(self, all_contacts_data, output_path):
"""Generate HTML report with screenshots and OCR text."""
html_parts = ['''<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>企微IM聊天记录导出</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;
background: #f5f5f5; color: #333; padding: 20px; }
.header { text-align: center; padding: 20px 0; border-bottom: 2px solid #07C160; margin-bottom: 30px; }
.header h1 { font-size: 24px; color: #07C160; }
.header .meta { font-size: 14px; color: #999; margin-top: 8px; }
.contact-section { background: #fff; border-radius: 12px; margin-bottom: 30px;
overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.contact-header { background: #07C160; color: white; padding: 15px 20px; font-size: 18px; font-weight: 600; }
.shot-block { border-bottom: 1px solid #eee; padding: 20px; }
.shot-block:last-child { border-bottom: none; }
.shot-label { font-size: 14px; color: #666; margin-bottom: 8px; font-weight: 600; }
.shot-img { max-width: 100%; border: 1px solid #ddd; border-radius: 8px; display: block; margin: 0 auto; }
.ocr-text { background: #f9f9f9; border-left: 3px solid #07C160; padding: 12px 16px;
margin-top: 12px; font-size: 13px; line-height: 1.8; white-space: pre-wrap;
border-radius: 0 6px 6px 0; }
.ocr-text:empty { display: none; }
.summary { text-align: center; padding: 20px; color: #999; font-size: 14px; }
</style>
</head>
<body>
<div class="header">
<h1>企微IM聊天记录导出</h1>
<div class="meta">导出时间:''' + datetime.now().strftime('%Y-%m-%d %H:%M:%S') + '''</div>
</div>
''']
for cd in all_contacts_data:
html_parts.append(f'<div class="contact-section">')
html_parts.append(f'<div class="contact-header">联系人 #{cd["index"]}</div>')
for j, (shot_path, ocr_text) in enumerate(zip(cd['screenshots'], cd['ocr_texts'])):
# Convert path to relative or use data URI for portability
try:
import base64
with open(shot_path, 'rb') as f:
b64 = base64.b64encode(f.read()).decode()
img_tag = f'<img class="shot-img" src="data:image/png;base64,{b64}" alt="截图{j+1}">'
except:
img_tag = f'<img class="shot-img" src="{shot_path}" alt="截图{j+1}">'
html_parts.append(f'''
<div class="shot-block">
<div class="shot-label">截图 {j+1}</div>
{img_tag}
<div class="ocr-text">{ocr_text if ocr_text else ""}</div>
</div>''')
html_parts.append('</div>')
total_shots = sum(cd['screenshot_count'] for cd in all_contacts_data)
html_parts.append(f'<div class="summary">共 {len(all_contacts_data)} 个联系人,{total_shots} 张截图</div>')
html_parts.append('</body></html>')
with open(output_path, 'w', encoding='utf-8') as f:
f.write('\n'.join(html_parts))
print(f"\n [HTML] 报告已生成: {output_path}")
def run(self, start=1, count=3, deep=False):
"""Main export flow."""
print(f"\n{'='*60}")
print(f" IM Chat Export v6 (AHK + BitBlt + OCR)")
print(f" 联系人: #{start} - #{start + count - 1}")
print(f" 深度模式: {'' if deep else ''}")
print(f"{'='*60}")
# Step 1: Activate window via AHK first (so PrintWindow sees real layout)
self.activate_window()
# Step 2: Analyze layout (after activation for accurate coordinates)
contacts = self.analyze_contacts()
if not contacts:
print(" [错误] 未检测到联系人!")
return
# Filter to requested range
target_contacts = [c for c in contacts if start <= c['index'] < start + count]
if not target_contacts:
print(f" [错误] 请求范围 #{start}-#{start+count-1} 超出检测范围")
return
# Step 3: Export each contact
all_data = []
for contact in target_contacts:
data = self.export_contact(contact, deep=deep)
all_data.append(data)
# Step 4: Generate HTML report
html_path = self.output_dir / f"chat_export_{datetime.now().strftime('%Y%m%d_%H%M%S')}.html"
self.generate_html(all_data, str(html_path))
# Step 5: Save JSON data
json_path = self.output_dir / f"chat_export_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json"
with open(json_path, 'w', encoding='utf-8') as f:
json.dump(all_data, f, ensure_ascii=False, indent=2)
print(f"\n{'='*60}")
print(f" 导出完成!")
print(f" HTML: {html_path}")
print(f" JSON: {json_path}")
print(f" 联系人: {len(all_data)}")
print(f" 截图: {sum(d['screenshot_count'] for d in all_data)}")
print(f"{'='*60}")
return html_path
def main():
parser = argparse.ArgumentParser(description='IM Chat Export v6 - AHK + BitBlt + OCR')
parser.add_argument('--start', type=int, default=1, help='Start contact index (1-based)')
parser.add_argument('--count', type=int, default=3, help='Number of contacts to export')
parser.add_argument('--deep', action='store_true', help='Deep scroll mode (max 30 scrolls)')
parser.add_argument('--output', type=str, default='.', help='Output directory')
parser.add_argument('--analyze', action='store_true', help='Only run layout analysis')
args = parser.parse_args()
# Find window
windows = find_im_window()
if not windows:
print("错误: 未找到企微IM窗口 (标题包含 '智能IT助手')")
print("请确保企微IM聊天窗口已打开")
sys.exit(1)
hwnd, title = windows[0]
print(f"找到窗口: {title} (hwnd=0x{hwnd:x})")
exporter = IMChatExporterV6(hwnd, args.output)
if args.analyze:
contacts = exporter.analyze_contacts()
if contacts:
print(f"\n检测到 {len(contacts)} 个联系人:")
for c in contacts:
print(f" #{c['index']}: center_y={c['center_y']} screen=({c['screen_x']}, {c['screen_y']})")
return
html_path = exporter.run(start=args.start, count=args.count, deep=args.deep)
if html_path:
print(f"\n请查看: {html_path}")
if __name__ == '__main__':
main()
+107
View File
@@ -0,0 +1,107 @@
{
"contact_4": {
"index": 4,
"full_view": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_4\\full_view.png",
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_4\\chat_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_4\\chat_01.png"
],
"screenshot_count": 2,
"scroll_attempts": 2,
"max_scroll_diff": 0.0,
"ocr_texts": [
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_4\\chat_top.png",
"lines": []
},
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_4\\chat_01.png",
"lines": []
}
]
},
"contact_5": {
"index": 5,
"full_view": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_5\\full_view.png",
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_5\\chat_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_5\\chat_01.png"
],
"screenshot_count": 2,
"scroll_attempts": 2,
"max_scroll_diff": 0.0,
"ocr_texts": [
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_5\\chat_top.png",
"lines": []
},
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_5\\chat_01.png",
"lines": []
}
]
},
"contact_6": {
"index": 6,
"full_view": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_6\\full_view.png",
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_6\\chat_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_6\\chat_01.png"
],
"screenshot_count": 2,
"scroll_attempts": 2,
"max_scroll_diff": 0.0,
"ocr_texts": [
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_6\\chat_top.png",
"lines": []
},
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_6\\chat_01.png",
"lines": []
}
]
},
"contact_7": {
"index": 7,
"full_view": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_7\\full_view.png",
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_7\\chat_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_7\\chat_01.png"
],
"screenshot_count": 2,
"scroll_attempts": 2,
"max_scroll_diff": 0.0,
"ocr_texts": [
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_7\\chat_top.png",
"lines": []
},
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_7\\chat_01.png",
"lines": []
}
]
},
"contact_8": {
"index": 8,
"full_view": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_8\\full_view.png",
"screenshots": [
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_8\\chat_top.png",
"D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_8\\chat_01.png"
],
"screenshot_count": 2,
"scroll_attempts": 2,
"max_scroll_diff": 0.0,
"ocr_texts": [
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_8\\chat_top.png",
"lines": []
},
{
"image": "D:\\资料\\03-项目开发\\wecom_it_smart_desk\\chat_export\\contact_8\\chat_01.png",
"lines": []
}
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB