Pywinauto自动化操作PC微信提取好友微信号
生活随笔
收集整理的這篇文章主要介紹了
Pywinauto自动化操作PC微信提取好友微信号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
聲明: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 Imageimg_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=Truefor 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=Falsebreakif 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:breakelse:nb = nb + 1app.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 weixinoks.append(weixin)f = open("weixin.txt","a")f.write(weixin+"\n")f.close()else:print u"失敗一個"
#! /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 Imageimg_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=Truefor 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=Falsebreakif 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:breakelse:nb = nb + 1app.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 weixinoks.append(weixin)f = open("weixin.txt","a")f.write(weixin+"\n")f.close()else:print u"失敗一個"
其中的weixin.bmp為截圖的微信字體
---------------------------------------分割線2017年11月-------------------------------------
根據以上思路,已實現自動發送微信消息,但是不方便公開,大家可以嘗試一下,想想思路。
?
轉載于:https://www.cnblogs.com/tianrunzhi/p/7799823.html
總結
以上是生活随笔為你收集整理的Pywinauto自动化操作PC微信提取好友微信号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ruby 正则表达式 使用正负预查
- 下一篇: 基于OHCI的USB主机 —— OHCI