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 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月-------------------------------------
根据以上思路,已实现自动发送微信消息,但是不方便公开,大家可以尝试一下,想想思路。
Pywinauto自动化操作PC微信提取好友微信号的更多相关文章
- 触摸精灵lua脚本实现微信群加好友功能
--此脚本针对iPhone5/5s --目前只实现一个屏幕微信群好友的添加,如果想添加更多好友, --需要划屏操作,执行划屏操作时建议循环滑动 function main() --获取屏幕的分辨率 w ...
- 利用Python查看微信共同好友
思路 首先通过itchat这个微信个人号接口扫码登录个人微信网页版,获取可以识别好友身份的数据.这里是需要分别登录两人微信的,拿到两人各自的好友信息存到列表中. 这样一来,查共同好友就转化成了查两个列 ...
- 我已经看到了,撤回也没用了(PC微信防撤回补丁)
前两天看 GitHub 发现一个有趣的项目,PC微信防撤回补丁,本着研究学习的目的,在看过源码,一顿疯狂操作之后,了解了其原理是基于修改 wechatwin.dll 达到防撤回的. 于是乎,自己动手玩 ...
- 用chrome console实现自动化操作网页
因为chrome console只能访问当前页的上下文(以及chrome扩展的上下文),无法访问其他标签页面的上下文,所以局限性较大,仅适用于一些较简单的操作 经实践,可以在chrome的一个标签页的 ...
- 静态集成腾讯TBS X5内核WebView,从微信提取新版30M浏览器内核打包进apk
目录 前情提要 第一步:下载老版本SDK得到jar 获取SDK 集成SDK 步骤二.下载提取最新TBS X5内核 方法1:从微信中提取 方法2:App内内访问tbs调试页安装新内核 步骤三.集成内核到 ...
- 【python】itchat登录微信获取好友签名并生成词云
在知乎上看到一篇关于如何使用itchat统计微信好友男女比例并使用plt生成柱状图以及获取微信好友签名并生成词云的文章https://zhuanlan.zhihu.com/p/36361397,感觉挺 ...
- ASP调用SDK微信分享好友、朋友圈
ASP调用SDK微信分享好友.朋友圈需要用到sha1.asp,我先来上主代码,然后再附加sha1.asp,方便大家直接复制过去即可使用. 页面:shara.asp 1 <%@LANGUAGE=& ...
- 快过年了,如何使用 AutoJS 自动化快速抢微信红包!
快过年了,群里一般会充斥着各种红包,你抢红包的手速怎么样呢?AutoJS 是一款 Android 端的应用软件,它可以基于无障碍服务主动或基于任务,完成一系列自动化操作 官网:https://pro. ...
- splinter python浏览器自动化操作,模拟浏览器的行为
Splinter可以非常棒的模拟浏览器的行为,Splinter提供了丰富的API,可以获取页面的信息判断当前的行为所产生的结果 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有 ...
随机推荐
- Font Awesome 完全兼容 Bootstrap 的所有组件。
"F_FullName": "其他", "F_Icon": "glyphicon glyphicon-backward fa-lg ...
- Spring AspectJ 切入点语法详解(7)
1.Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指 ...
- 使用JavaScript分别实现4种样式的九九乘法表(1X1分别在左上、左下、右上、右下)
第1种样式(左上角):如下图所示 具体实现代码如下所示: 第2种样式(左下角):如下图所示 具体实现代码如下所示: 第3种样式(右上角):如下图所示 具体实现代码如下所示: 第4种样式(右下角):如下 ...
- C++: Basic knowledge Part 1
1.在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 首先,extern 是 C/C++ 语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数 ...
- openSUSE 安装compass,mkmf.rb can't find,checking for ffi.h...extconf.rb failed
安装compass时,提示 Fetching: sass-.gem (%) Successfully installed sass- Fetching: ffi-.gem (%) Building n ...
- SoapUI测试接口【转】
下载安装soapUI工具,具体安装按照提示往下走就可以,这里不着重说明,下面是我打开soapUI工具的起始窗口: 在Projects上鼠标右键点击,选择new soap project(新建一个SO ...
- session过期跳转到登陆页面并跳出iframe框架的两个方法
最近在做拦截器,判断用户登录后操作超时,失去权限然后要重新登录,但是用的iframe,返回的登陆页总是在框架中显示,我百度了下,总是只有其中一个方法,现在分享下两种解决方法,希望对你们有帮助: 方法一 ...
- python中检测mysql的主键唯一性异常
有两种方法: 1.直接检测是什么异常(查mysql文档找出异常代码) import os import mysql_operate.mysql_connect as mysql import re d ...
- Audio 标签的使用和自己封装一个强大的React音乐播放器
原文地址:https://www.dodoblog.cn/blog?id=5be84d5c70b2b617f27a4610 这篇文章主要介绍一下博客里的这个音乐播放器是怎么写的 为了更好的表达高深的东 ...
- Git婴幼儿使用手册【十分钟让你帅气的使用命令行和团队工作】
Git由来:...... Git使用的好处:...... 如何使用Git:(以上会显得我们以下的是很纯纯的干货) 代码库有两个部分: 本地代码库:远程代码库: 本地代码库使用方法: 一.先创建一个文件 ...