利用itchat和cv模块实现简单的微信控制电脑

昨天晚上,偶然间看到一篇CSDN给我推荐文章,是关于itchat模块和cv模块的,这两个模块里有一些让我很感兴趣的内容,比如说,微信与电脑交互,其实也没什什么高大上的,只不过就是依靠 itchat 开放微信个人接口还有cv2 跨平台计算机视觉库这两个模块实现的一些非常简单的功能。
于是乎,今天一大清早就起来自己动手做了一个微信与电脑交互的小程序,程序可以干什么呢?
它可以通过微信登陆,然后完成计算机的DOS命令的操作,以及计算机的拍照功能。

西面就是整个代码图片:在这里插入图片描述
这里呢,除了python默认自带的OS库之外,其他两个库(itchat cv)都是需要先安装的:

pip install itchat  
# 安装itchat库
pip install opencv-python --default-timeout=1000  
# 这里呢,--default-timeout=1000 是设置超时时间,避免你下载速度慢的话,会出现超时错误

看,我就遇到超时报错了
在这里插入图片描述

下面是具体代码:

import itchat
import os
import cv2

def cmd(data="shutdown -s -t 0 -c'远程关机执行成功'"):
	try:
		os.system(data)
	except:
		itchat.send('DOS命令输入有误','filehelper')

def photo(filename="Caiden_Micheal.jpg"):
	# 调用第一个摄像头
	cap = cv2.VideoCapture(0)
	# 返回两个参数,ret接收的数据有两种情况True和False,表示是否获取到摄像头
	# img表示读取到的信息
	ret,img = cap.read()
	if ret:
		# 把读取的信息写入 filename中,filename图片名字可以自定义,这里,默认设置成 "Caiden_Micheal.jpg"
		cv2.imwrite(filename,img)
		itchat.send_image(filename,'filehelper')
	else:
		itchat.send('无法读取摄像头,请检查设备设置','filehelper')
	# 释放摄像头资源
	cap.release()

def control(data):
	if data == '关机':
		cmd()
	elif data == '拍照':
		photo()
	else:
		cmd(data)

flag = False
@itchat.msg_register(['Text'])
def message(msg):
	# msg里面存放着微信里发送的数据 'FromUserName'存放发送方用户,'ToUserName'存放接收方用户
	FromUserName = mag['FromUserName']
	ToUserName = msg['ToUserName']
	# 判断是不是发给自己的
	if FromUserName == ToUserName:
		itchat.send("开启电脑控制:on\n关闭电脑控制:off\n",'filehelper')
		# 获取微信的消息
		data = msg['Text']
		global flag
		if data == 'on':
			flag = True
		else:
			flag = False
		if flag:
			itchat.send('\n您可以控制电脑了\n功能【1】:关机\n功能【2】:拍照\n功能【3】:直接输入相应的DOS命令即可\n','filehelper')
			control(data)

def main():
	# show先要登陆微信,hotReload=True表示可以存储用户登录信息,扫码之后用户信息就被保留。
	itchat.auto_login(hotReload=True)
	# 让微信运行起来
	itchat.run()


if __name__ == '__main__':
	main()

牛X死我了,写完了,赶紧试试看吧,嘿,结果。。。。。。。。。。“噔!!!”,报了个错误,牛X果然死了

为了你的帐号安全,此微信号已不允许登录网页微信。你可以使用Windows微信或Mac微信在电脑端登 录。
Windows微信下载地址:https://pc.weixin.qq.com  
Mac微信下载地址:https://mac.weixin.qq.com</message></error>
Start auto replying.

在这里插入图片描述

这什么情况,微信网页版不让登陆了吗?我微信的事?

赶紧,换了2个微信号试了试,结果都一样,最后,上百度一搜,才知道,腾讯微信网页版停止用户登录了。。。。。。。。
哎,算了,我不想说啥了,虽然 itchat不能用了,但也学到了不少东西,至少知道了这几个模块是干什么的,以及用法。
。。。。。。。。
,,,,,,,,
//////////////////////////
其实呢,昨天晚上我还干了不少的事,比如说,申请了 图灵机器人PID号,其实我打算给这个程序加上一个 自动聊天功能的

这是受这篇文章的影响

用python3实现简单的语音识别转化成文字

以python3为基础语言,用到了 itchat +谷歌的语音识别+思知机器人API+pydub类库

import json
import requests

#思知机器人API
def get_sizhi_response(msg):
    apiUrl = 'https://api.ownthink.com/bot'
    apiKey = 'xxxxxxxxxx'#这里填写你自己申请的机器人apiKey
    data = {
        "spoken": msg,
        "appid": apiKey,
        "userid": 'fireworks'#随便起的
    }
    # 必须是json
    headers = {'content-type': 'application/json'}

    try:
        req = requests.post(apiUrl, headers = headers, data = json.dumps(data))
        return req.json()
    except:
        return

#处理思知机器人返回的json消息
def sizhi_msg(msg):
    #设置一个默认回复。
    return_msg = '我是个笨笨的机器人,我CPU好像挂了~_~![自动回复]'
    replyjson = get_sizhi_response(msg)
    if replyjson['message'] == 'success':
        return_msg = replyjson['data']['info']['text'].replace('小思','伦家~').replace('思知机器人','伦家~');
        print("思知机器人自动回复:"+return_msg)
    # a or b --》 如果a不为空就返回a,否则返回b
    return return_msg
--------------------- 
作者:♪生活有点甜 
来源:CSDN 
原文:https://blog.csdn.net/shiyus1314/article/details/97391658 
版权声明:本文为博主原创文章,转载请附上博文链接!
发布了36 篇原创文章 · 获赞 75 · 访问量 5456

猜你喜欢

转载自blog.csdn.net/weixin_44449518/article/details/98482029
今日推荐