前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pywinauto自动化操作PC微信提取好友微信号

Pywinauto自动化操作PC微信提取好友微信号

作者头像
墨文
发布2020-02-28 15:28:35
2.5K0
发布2020-02-28 15:28:35
举报
文章被收录于专栏:m0w3n
代码语言:javascript
复制
声明:https://zhuanlan.zhihu.com/p/29944988#! /usr/bin/env python
#coding=utf-8
#pywinauto自动化操作微信号
#by bugscaner  http://tools.bugscaner.com
import win32clipboard as wc
import win32con
from pywinauto.application import *
from PIL import ImageGrab
import time
def get_screenxy_from_bmp(main_bmp,son_bmp):
    #获取屏幕上匹配指定截图的坐标->(x,y,width,height)
    from PIL import Image
    img_main=Image.open(main_bmp)
    img_son=Image.open(son_bmp)
    datas_a=list(img_main.getdata())
    datas_b=list(img_son.getdata())
    for i,item in enumerate(datas_a):
        if datas_b[0]==item and datas_a[i+1]==datas_b[1]:
            yx=divmod(i,img_main.size[0])
            main_start_pos=yx[1]+yx[0]*img_main.size[0]
 
            match_test=True
            for n in range(img_son.size[1]):
                main_pos=main_start_pos+n*img_main.size[0]
                son_pos=n*img_son.size[0]
 
                if datas_b[son_pos:son_pos+img_son.size[0]] != datas_a[main_pos:main_pos+img_son.size[0]]:
                    match_test=False
                    break
            if match_test:
                return (yx[1],yx[0],img_son.size[0],img_son.size[1])
    return False
def getCopyText():
    wc.OpenClipboard()
    copy_text = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return copy_text
oks = []
app = Application().start(r"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe")
if not app.windows():
    app = Application().connect(path=r"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe")
app.window_(title=u"微信",class_name="WeChatMainWndForPC").move_window(0,0)
nb = 0
while 1:
    if nb > 140:
        break
    else:
        nb = nb + 1
        app.window_(title=u"微信",class_name="WeChatMainWndForPC").TypeKeys("{DOWN}")
        time.sleep(.5)
        pic = ImageGrab.grab((0,0,623,454))
        pic.save('1.bmp')
        ok = get_screenxy_from_bmp(u'1.bmp',u'weixin.bmp')
        #选中
        app.window_(title=u"微信",class_name="WeChatMainWndForPC").double_click_input(coords=(ok[0]+100,ok[1]+10))
        #拷贝
        app.window_(title=u"微信",class_name="WeChatMainWndForPC").TypeKeys("^c")
        app.window_(title=u"微信",class_name="WeChatMainWndForPC").click_input(coords=(208,477))
        weixin =  getCopyText()
        if weixin not in oks:
            print weixin
            oks.append(weixin)
            f = open("weixin.txt","a")
            f.write(weixin+"\n")
            f.close()
        else:
            print u"失败一个"

其中的weixin.bmp为截图的微信字体

---------------------------------------分割线2017年11月-------------------------------------

根据以上思路,已实现自动发送微信消息,但是不方便公开,大家可以尝试一下,想想思路。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档