由于要以微信作一个某学习网站的登陆途径,用小程序就又有一些额外的花费,所以想以微信聊天窗口做些文章,就在网上找了很多关于微信机器人的方法,大多数都是用的老旧并且已经失效的wxpy,没办法了,放弃吗?

由于要以微信作一个某学习网站的登陆途径,用小程序就又有一些额外的花费,所以想以微信聊天窗口做些文章,就在网上找了很多关于微信机器人的方法,大多数都是用的老旧并且已经失效的wxpy,没办法了,放弃吗?

整体思路:利用自动化测试库达到预期效果。

运行环境:PyCharm Python

码字流程

获取微信的PID

连接到微信

微信的一些基本功能

获取用户发来的消息获取聊天信息用户在聊天界面找到某个用户搜索某个用户向某个用户发送文本信息删除某个用户

微信的一些额外功能

修改备注添加指定申请好友一键添加所有申请好友发送图片至指定用户接收超级用户指令,处理相关任务接收普通用户指令,回复相关内容一键删除所有好友掉线通知超级用户掉线自动重登对接其他接口,完成相关任务收藏信息自动收款判断金额并通知超级用户对接数据库,判断用户是否在使用该功能的期限内一键通知信息至好友指定好友消息免打扰群踢出成员转发信息发送收藏中的内容至用户发送本地文件至用户

获取微信的PID

这里用到了psutil库,大概意思是获取所有的进程,遍历挑选出微信的进程ID

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:smart_num_1

# Blog:https://blog.csdn.net/smart_num_1

from psutil import process_iter

def get_pid():

PID = process_iter()

name = ''

pid_num = 0

for pid_temp in PID:

pid_dic = pid_temp.as_dict(attrs = ['pid','name'])

if pid_dic ['name'] == 'WeChat.exe':

name = pid_dic ['name']

pid_num = pid_dic ['pid']

break

if name =='WeChat.exe':

return pid_num

else :

return False

连接到微信

# 创建一个实例对象,Pywinauto中backend有两种:win32和uia,默认为win32。可使用spy++和Inspect工具判断backend适合写哪种。在这里微信为'uia'

self.app = Application(backend = 'uia')

# 将 app 连接到已经登陆成功的微信,这里可以用进程ID、句柄、以及程序路径进行连接,此处采用PID

self.app.connect(process = PID )

# 定位到微信窗口

self.win = app[u'微信']

微信的一些基本功能

获取用户发来的消息

def get_text(self):

data = ''

try:

data = self.win.Edit2.get_value()

with open('./temporary_text','w',encoding = 'utf-8') as f:

f.write(data)

except:

pass

return data #line:4

获取聊天信息用户

def get_users(self):

user_lis = []

try:

# 定位到信息列表,获取这个对象

conunacation = self.win.child_window(title = "会话",control_type = "List")

# 定位到这个位置

position = conunacation.rectangle()

mouse.click(button = 'left',coords = (position.left + 100 ,position.top + 10 ))

# 定位到列表的位置,取他的子控件,至于为何,列表是一个总的容器,而每个用户都存在这个容器中,固取子控件

users = conunacation.children()

for user in users:

user_lis.append(user.window_text())

except:

pass

return user_lis

在聊天界面找到某个用户

def find_user (self ,user = ''):

# 找到指定名称用户的按钮

user = self.win.child_window(title = user, control_type = 'Text')

# 定位到该按钮,获取它的相对位置

position = user .rectangle()

# 模拟点击,coords 是点击的位置

mouse.click (button = 'left',coords = (position.left ,position.top))

sleep(0.3)

搜索某个用户

def search_ueser (self ,user_name = ''):

# 找控件的方法如上个函数中介绍,此处不再继续介绍

search = self.win.child_window(title = "搜索", control_type = "Edit")

position = search.rectangle()

mouse.click(button = 'left', coords = (position.left + 100 ,position.top + 10))

sleep(0.1)

mouse.click(button = 'left', coords = (position.left + 100 ,position.top + 10))

# 自带的模块,输入该用户的名字

self.win.type_keys(user_name)

sleep(0.6)

self.win.type_keys('{ENTER}')

向某个用户发送文本信息

def send_message (self ,texts =''):#line:64

for text in texts .split ('\n'):#line:65

# 这里用到了另外的一个库,因为用pywinauto 自带的输入模块,表情,空格等是自动略过或者识别不出,达不到按原有缩进样式缩进的效果

if text.isalnum():

copy(text.strip())

hotkey ('ctrl', 'v')

else:

self.win.type_keys(text)

sleep(0.1)

hotkey ('ctrl', 'enter')#line:67

hotkey ('enter')#line:68

删除某个用户

def delete_user(self ,user =''):

user = self.win.child_window(title = user, control_type = 'Text')

position = user.rectangle()

mouse.click(button = 'right', coords = (position.left - 40 ,position.top))

# 这里右键会弹出菜单,直接点击该菜单中的删除聊天选项

self.app.Menu ['删除聊天'].click_input('left')

微信的一些额外功能

由于此程序的使用原因,牵扯到项目的一些敏感内容,不方便将这些功能全部详细说出,只是大概写一下已经实现了哪些内容,如有人需要相关思路,可联系微信:Be_a_luck_dog

修改备注

添加指定申请好友

一键添加所有申请好友

发送图片至指定用户

接收超级用户指令,处理相关任务

接收普通用户指令,回复相关内容

一键删除所有好友

掉线通知超级用户

掉线自动重登

对接其他接口,完成相关任务

收藏信息

自动收款判断金额并通知超级用户

对接数据库,判断用户是否在使用该功能的期限内

一键通知信息至好友

指定好友消息免打扰

群踢出成员

转发信息

发送收藏中的内容至用户

发送本地文件至用户

专属微信二维码python制作_使用Python制作专属微信小客服相关推荐

  1. 小程序获取企业微信二维码,使用联系我插件配置企业微信二维码

    通过配置获取企业微信二维码总共分为五步: 第一步:登录企业微信管理后台,查询企业微信的企业ID(corpid)和Secret(corpsecret); 第二步:获取access_token: 第三步: ...

  2. python实现二维码识别软件_用 Python 生成 识别二维码

    说到二维码大家一定不陌生,可以说现在二维码几乎渗透到了我们生活的各个角落,举例来说吧,我们到超市商场购物时扫描二维码付款,我们出行时乘坐公交地铁扫描二维码进站,我们到菜鸟驿站取件时扫描二维码取件,如果 ...

  3. python扫描二维码输出内容_通过python扫描二维码/条形码并打印数据

    需提前安装好pyzbar和opencv-python库(博主的电脑安装opencv-python库比较麻烦,但大部分都不会出现该问题) 安装方法:打开命令框输入 pip install pyzbar/ ...

  4. python发票二维码条码识别_通过python扫描二维码/条形码并打印数据

    需提前安装好pyzbar和opencv-python库(博主的电脑安装opencv-python库比较麻烦,但大部分都不会出现该问题) 安装方法:打开命令框输入 pip install pyzbar/ ...

  5. 微信公众平台开发(三)——微信二维码生成扫码关注

    微信二维码生成是指后端发送请求向微信服务器申请公众号的二维码,用户如果未关注,进行扫描改二维码后即跳转道公众号的关注页面:如果已经关注,扫描二维码后直接进入该微信公众号.当用户扫码时,微信服务器会向后 ...

  6. 专属微信二维码python制作_教你使用Python制作酷炫二维码

    这篇文章讲的是如何利用python制作狂拽酷炫吊炸天的二维码,非常有趣哦! 可能你见过的二维码大多长这样: 稍微好看点的长这样: 普普通通,平平凡凡,没什么特色... 但,如果二维码长这样呢! 或者这 ...

  7. python制作微信个人二维码_一个python自动生成微信二维码海报的轮子

    由于最近需要做一个线上活动,所以策划了一个微信二维码海报的用户裂变方案.做好了需求以后交给我们可爱的程序媛妹妹.三天过后去问她,她的表情是这样的 她是不是在说,"啊啊,真是不好意思" ...

  8. Python制作微信二维码(动态+静态)

    # 制作静态微信二维码 import qrcode from PIL import Image from MyQR import myqr import os# data = 二维码存的内容,当输入文 ...

  9. 【Python实战】用Python制作动态微信二维码qrcode

    Python完整代码 # https://github.com/sylnsfar/qrcode#common-qr-code from MyQR import myqr import osversio ...

  10. 一行代码制作自己的QQ/微信二维码,还可以制作动态的哟~(小白再也不用去求别人了)

    今天,我们要用Python制作一个炫酷的二维码,还可以是动得哟 废话少说,我们开始制作吧~ 文章目录 安装MyQR CMD生成图片二维码 用Python来生成(生成失败的朋友看过来) 做一个动图二维码 ...

最新文章

  1. git多人协作冲突解决方法
  2. axios vue 回调函数_Vue 02 —— Vue 入门小案例~使用 Axios 中的GET、POST请求
  3. mssql sqlserver in 关键字在值为null的应用举例
  4. Hadoop 2.0 中的资源管理框架 - YARN(Yet Another Resource Negotiator)
  5. 解决阿里云 ssh 远程连接短时间没操作就会断掉的问题
  6. DRUID连接池的简单使用
  7. 关于Python在Linux、Mac和Windows上的安装方法总结
  8. Python学习之路-基础知识1
  9. 13 MySQL--存储过程
  10. Firefly加入OPEN AI LAB生态计划,推出AI开源主板
  11. ASP.NET中防止页面多次提交的代码实现
  12. 世界名著100部简介
  13. python图像识别生成矢量图_Python matplotlib图片转化成矢量图并裁剪 - 小众知识
  14. 掌财社昆仑:期货升水和期货贴水是什么意思?
  15. matlab 自制闹钟程序,想编一个每半小时提示的闹钟程序
  16. PS学习之动态表情制作
  17. 现在的 Linux 内核和 Linux 2.6 的内核有多大区别?
  18. 在Unity中制作高质量的光照效果(上)
  19. SpringCloud+CloudAlibaba微服务初阶入门
  20. 不讲周期长短不足以谈牛熊

热门文章

  1. 为何全视觉方案无法实现真正的自动驾驶
  2. android 常用编程框架
  3. vue-cli2解决跨域问题
  4. CCPC网络赛重赛榜单(重赛)
  5. 【渝粤教育】国家开放大学2019年春季 0024-22T建筑工程管理与实务 参考试题
  6. jupyter ipython_ipython安装( jupyter)
  7. serdes channel bonding
  8. 杂谈:我对苹果哲学的理解──苹果的骗局zz (3086字)
  9. C语言构建环形缓冲区
  10. 编程猫计算机软件编程蓝桥杯,蓝桥杯青少年组比赛结果公布,少儿编程头部企业编程猫学员获奖率高达近90%,再次发挥示范、引领作用!...