easyChat icon indicating copy to clipboard operation
easyChat copied to clipboard

你好,请问能否实现自动读取微信好友列表,将列表好友的昵称写入txt文档吗?

Open pick-yang opened this issue 11 months ago • 12 comments

当好友量到达5000时,很多好友的昵称我们不清楚,如果一个一个的输入会很消耗时间,如果能直接读取出好友列表,会省力很多。 不只是好友列表,包括群聊。 image

pick-yang avatar Jan 11 '25 17:01 pick-yang

你好,这个功能已经实现了: image

在保存好友列表之后,你可以通过读取好友列表将所有的好友读到程序中。

LTEnjoy avatar Jan 12 '25 03:01 LTEnjoy

这个功能好像不行,闪退了

pick-yang avatar Jan 12 '25 04:01 pick-yang

image

pick-yang avatar Jan 12 '25 05:01 pick-yang

看这个报错,你是没有设置微信的打开路径吧?

LTEnjoy avatar Jan 12 '25 05:01 LTEnjoy

image 通过这个打包的,路径给了并且能正常发消息,获取列表的时候不行

pick-yang avatar Jan 12 '25 05:01 pick-yang

你要不直接下载仓库里的exe文件试一下呢?我试了一下是可以的。

LTEnjoy avatar Jan 12 '25 06:01 LTEnjoy

仓库里面的exe里面的路径不是我的,大佬

pick-yang avatar Jan 12 '25 06:01 pick-yang

啥意思。。。你下载exe之后,设置微信打开路径,不就可以读取好友了吗。

LTEnjoy avatar Jan 12 '25 06:01 LTEnjoy

抱歉,我的错,不过我试了一下,还是闪退

pick-yang avatar Jan 12 '25 07:01 pick-yang

有点奇怪。你试一下能不能够正常发送信息呢?如果发送信息不闪退,那么获取聊天列表也不应该闪退才是。

LTEnjoy avatar Jan 12 '25 17:01 LTEnjoy

有点奇怪。你试一下能不能够正常发送信息呢?如果发送信息不闪退,那么获取聊天列表也不应该闪退才是。

我试了一下,使用ui界面操作的情况下,正确添加了微信的exe路径,可以正常发送消息,但是获取聊天列表时确实会闪退。

RAYaRayaRay avatar Feb 14 '25 06:02 RAYaRayaRay

你好,我更新了一下exe文件。你可以下载最新的文件进行尝试。

LTEnjoy avatar Feb 14 '25 07:02 LTEnjoy

你好! 我试了下,还是会闪退。 运行代码报错为: c:\code\easyChat\wechat_gui.py:492: DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using int is deprecated, and may be removed in a future version of Python. self.setFixedSize(width0.2, height0.6) Traceback (most recent call last): File "c:\code\easyChat\wechat_gui.py", line 40, in save_contacts contacts = self.wechat.find_all_contacts() File "c:\code\easyChat\ui_auto_wechat.py", line 187, in find_all_contacts scroll_pattern.SetScrollPercent(-1, 0) AttributeError: 'NoneType' object has no attribute 'SetScrollPercent'

调试代码,这个是获取的list_control:

Image

Image

chfight avatar Mar 04 '25 08:03 chfight

你好,有可能是代码未注释干净的问题。你尝试一下把这两行代码注释掉呢?

Image

LTEnjoy avatar Mar 04 '25 08:03 LTEnjoy

你好,有可能是代码未注释干净的问题。你尝试一下把这两行代码注释掉呢?

Image

注释掉之后可以了,非常感谢

chfight avatar Mar 04 '25 09:03 chfight

你好,保存微信好友列表` 和 保存微信群聊列表 出现闪退, 微信版本3.9.12.45 报错如下

2025-03-28 15:28:11.140 ui_auto_wechat.py[29] click -> Find Control Timeout(10s): {Name: '通讯录', ControlType: ButtonControl} Traceback (most recent call last): File "d:/MicrosoftVSCode/project/easyChat-main/wechat_gui.py", line 77, in save_contacts contacts = self.wechat.find_all_contacts() File "d:\MicrosoftVSCode\project\easyChat-main\ui_auto_wechat.py", line 184, in find_all_contacts click(auto.ButtonControl(Name=self.lc.contacts)) File "d:\MicrosoftVSCode\project\easyChat-main\ui_auto_wechat.py", line 29, in click x, y = element.GetPosition() File "d:\MicrosoftVSCode\project\easyChat-main\uiautomation.py", line 6696, in GetPosition rect = self.BoundingRectangle File "d:\MicrosoftVSCode\project\easyChat-main\uiautomation.py", line 6117, in BoundingRectangle rect = self.Element.CurrentBoundingRectangle File "d:\MicrosoftVSCode\project\easyChat-main\uiautomation.py", line 6434, in Element self.Refind(maxSearchSeconds=TIME_OUT_SECOND, searchIntervalSeconds=self.searchInterval) File "d:\MicrosoftVSCode\project\easyChat-main\uiautomation.py", line 6684, in Refind raise LookupError('Find Control Timeout({}s): {}'.format(maxSearchSeconds, self.GetSearchPropertiesStr())) LookupError: Find Control Timeout(10s): {Name: '通讯录', ControlType: ButtonControl}

xiyuanji avatar Mar 28 '25 07:03 xiyuanji

@xiyuanji 你好,你的微信是不是简中版本呢?

LTEnjoy avatar Mar 28 '25 07:03 LTEnjoy

@xiyuanji 你好,你的微信是不是简中版本呢?

是的,简中版本

xiyuanji avatar Mar 28 '25 07:03 xiyuanji

我刚刚测试了一下,最新版本并没有这个问题。你下载的是最新版本的exe文件吗?

LTEnjoy avatar Mar 28 '25 07:03 LTEnjoy

我刚刚测试了一下,最新版本并没有这个问题。你下载的是最新版本的exe文件吗?

是的。 最开始用的是最新版本的exe,会闪退。 之后下载代码,打包再运行,闪退,然后抓取错误日志。

xiyuanji avatar Mar 28 '25 07:03 xiyuanji

从报错反馈来看,是程序没有识别到通讯录这个按钮,你那边的按钮是这样吗?Image

LTEnjoy avatar Mar 28 '25 07:03 LTEnjoy

从报错反馈来看,是程序没有识别到通讯录这个按钮,你那边的按钮是这样吗?Image

是的

xiyuanji avatar Mar 28 '25 07:03 xiyuanji

如果你那边可以运行代码的话,建议使用这个文件查看一下你的微信的空间树,你可以检索一下是否有“通讯录” 这个关键词 Image

LTEnjoy avatar Mar 28 '25 07:03 LTEnjoy

如果你那边可以运行代码的话,建议使用这个文件查看一下你的微信的空间树,你可以检索一下是否有“通讯录” 这个关键词 Image

直接运行这个文件吗?

xiyuanji avatar Mar 28 '25 08:03 xiyuanji

先打开你的微信,然后打开至出现“通讯录管理”这个界面,然后运行那个文件,再马上把焦点切换到微信的通讯录管理界面。然后等待一段时间,你可以去查看代码的运行窗口,看看里面的控件树。

LTEnjoy avatar Mar 28 '25 08:03 LTEnjoy

先打开你的微信,然后打开至出现“通讯录管理”这个界面,然后运行那个文件,再马上把焦点切换到微信的通讯录管理界面。然后等待一段时间,你可以去查看代码的运行窗口,看看里面的控件树。

Image

xiyuanji avatar Mar 28 '25 08:03 xiyuanji

你在这个界面查看一下控件树,看看能不能找到这个按钮 Image

LTEnjoy avatar Mar 28 '25 08:03 LTEnjoy

你在这个界面查看一下控件树,看看能不能找到这个按钮 Image

Image

xiyuanji avatar Mar 28 '25 09:03 xiyuanji

好的,然后这个“通讯录”有吗?如果也有的话,那就不应该会有问题。可能需要你用代码运行一下程序来看看到底是什么原因了

Image

LTEnjoy avatar Mar 28 '25 09:03 LTEnjoy

Image 有,重新运行代码可以了,,,,卧槽,所以为啥,为啥第一次不行啊

xiyuanji avatar Mar 28 '25 09:03 xiyuanji