Python通过微信控制电脑

Python通过微信控制电脑

Python通过微信控制电脑

之前用itchat和wxpy结合爬虫帮业务部门解决了一些问题,但是itchat的网页版容易被封,加之之前研究了一些cv2的东东,所以觉得下面做的这个东西还是挺对我的胃口的。。。。。。

今天带给大家一个非常有意思的 python 程序,基于 itchat 实现微信控制电脑。你可以通过在微信发送命令,来拍摄当前电脑的使用者,然后图片会发送到你的微信上。甚至你可以发送命令来远程关闭电脑。

应用场景

你可爱又迷人的女朋友,在看到这篇教程之后,非常的开心。在你的电脑上部署了这个脚本,并且在你不知情的情况下,默默的登录上。随后跟你说我出去跟闺蜜逛街啦,今天就不陪你了。要记得不准吃鸡。

你心想老子终于可以放松一天了!开心的吃鸡!口上说着:“好的!亲爱的玩得开心!”等着女朋友出门以后,你就开启了吃鸡模式,在绝地求生里大开杀戒。

你的女朋友早已对你了如指掌,通过脚本,先让电脑截图留下现场证据,随后再打电话质问你是否在吃鸡,你如果撒谎就把电脑远程关机。

最后你想了下不对我没有女朋友啊,随后你转头微笑地看着你的室友。

程序思路

此次程序使用的环境是 python3.6 + windows10,在运行程序之前请先确保你已经安装好了 opencv-python 和 matplotlib。通过 pip install 即可安装。

程序主要是通过使用 itchat 库来登录到微信网页端,然后通过 itchat 来发送消息和接收消息。并通过 opencv 来调用电脑的摄像头,把当前使用电脑的用户拍照下来,发送到你的微信上。至于远程关机是通过调用 os 库,发送 cmd 命名即可实现。

程序源码

import itchat
import os
import time
import cv2

sendMsg = u"{消息助手}:暂时无法回复"
usageMsg = u"使用方法:\n1.运行CMD命令:cmd xxx (xxx为命令)\n" \
           u"-例如关机命令:\ncmd shutdown -s -t 0 \n" \
           u"2.获取当前电脑用户:cap\n3.启用消息助手(默认关闭):ast\n" \
           u"4.关闭消息助手:astc"
flag = 0 #消息助手开关
nowTime = time.localtime()
filename = str(nowTime.tm_mday)+str(nowTime.tm_hour)+
	str(nowTime.tm_min)+str(nowTime.tm_sec)+".txt"
myfile = open(filename, 'w')

@itchat.msg_register('Text')
def text_reply(msg):
    global flag
    message = msg['Text']
    fromName = msg['FromUserName']
    toName = msg['ToUserName']

    if toName == "filehelper":
        if message == "cap":
            cap = cv2.VideoCapture(0)
            ret, img = cap.read()
            cv2.imwrite("weixinTemp.jpg", img)
            itchat.send('@img@%s'%u'weixinTemp.jpg', 'filehelper')
            cap.release()
        if message[0:3] == "cmd":
            os.system(message.strip(message[0:4]))
        if message == "ast":
            flag = 1
            itchat.send("消息助手已开启", "filehelper")
        if message == "astc":
            flag = 0
            itchat.send("消息助手已关闭", "filehelper")
    elif flag == 1:
        itchat.send(sendMsg, fromName)
        myfile.write(message)
        myfile.write("\n")
        myfile.flush()

if __name__ == '__main__':
    itchat.auto_login()
    itchat.send(usageMsg, "filehelper")
    itchat.run()

程序并不复杂,定义了一些发送的消息,然后通过调用 itchat 和 cv2 相关库的操作,即可实现。关于 itchat 库的一些操作,可以去网上找相关的文档。

如果做的更好一些可以做一些封装和开机启动项的设置,那就完美解决了微信控制电脑。

博文来源:https://mp.weixin.qq.com/s/jbXM86KBIkjUmddyl0DF2w

Author face

徐静

数据科学从业者,算法工程师. 善于用数据科学的工具透析业务,模型的线上化部署,网络爬虫及前端可视化. 喜欢研究机器学习,深度学习及相关软件实现.目前自己还是小白一个,希望多多学习.

最近发表的文章