欢迎访问本站!
好店入驻
微信扫一扫打开
入驻好店
发布信息
微信扫一扫打开
发布信息
同城头条  >  本地  >  【uiautomation】微信通讯录好友列表获取(存储到txt中)
【uiautomation】微信通讯录好友列表获取(存储到txt中)
2024年01月12日 14:04   浏览:6   来源:大江夏

import subprocess

import uiautomation as auto

import time

 

# ToDo 这里需要更改微信所在地址,可通过桌面微信图标右键打开文件所在的位置查找到路径

subprocess.Popen('E:\WeChat\WeChat.exe')

 

wechatWindow = auto.WindowControl(searchDepth=1, className='WeChatMainWndForPC', Name='微信')

 

# 点击通讯录

button = wechatWindow.ButtonControl(Name='通讯录')

button.Click()

# 点击通讯录管理

administration = wechatWindow.ButtonControl(Name="通讯录管理")

administration.Click()

 

communication_administration = auto.WindowControl(Name="通讯录管理", ClassName="ContactManagerWindow")

# 将鼠标放至内容的中心,滚轮对联系人列表才能生效

communication_administration.MoveCursorToMyCenter()

list1 = communication_administration.ListControl(Name="")

# a表示存储列表,b表示计数器,flag控制代码是否退出

a = []

b = 1

 

flag = True

start_time = time.time()

print("""开始时间:{}""".format(start_time))

while flag:

    list1 = communication_administration.ListControl(Name="")

    nickname = list1.GetChildren()[0].TextControl()

    beizhu = list1.GetChildren()[0].GetFirstChildControl().GetFirstChildControl().GetChildren()[2].ButtonControl()



    '''判断是不是在列表a中,如果列表中没有,则添加'''

    if nickname.Name not in a:

        print(b, '', nickname.Name)

        print(b, '', beizhu.Name)

        b += 1

        a.append(nickname.Name)

        with open('name.txt', 'a', encoding='utf-8') as f:

            f.write(nickname.Name)

            f.write('   -   ')

            f.write(beizhu.Name)

            f.write('\n')

    # 滚轮下滚

    auto.WheelDown(waitTime=0.01)

 

 

    # 手动实现滚轮滚动到底操作

    # 空格

    if auto.IsKeyPressed(auto.Keys.VK_SPACE):

        print("到底了")

        for j in list1.GetChildren()[1:]:

            last_nickname = j.TextControl()

 

            if last_nickname not in a:

                print(b, '', last_nickname.Name)

                b += 1

                a.append(last_nickname)

                with open('name.txt', 'a', encoding='utf-8') as f:

                    f.write(last_nickname.Name)

                    f.write('   -   ')

                    f.write(beizhu.Name)

                    f.write('\n')

        print(a)

        flag = False

        end_time = time.time()

        sum_time = end_time - start_time

        print("""运行时间:{}s""".format(sum_time))




参考 

https://blog.csdn.net/knighthood2001/article/details/124905213

https://007.gangguana.com/a/0393b5a078ad59b134972428e6447155.shtml




头条号
大江夏
介绍
推荐头条