老Y在之前的文章中说过,Python可能是最简易最实用的一门语言,也是最适合0基础学习的编程语言。
也在文章中分享了一些python教程资源(分享一些资源,价值千元的Python视频教程)
因为老Y对Python也比较感兴趣,平时会留意一些有意思的小代码,今天就给大家分享在知乎上@痴海写的一小段脚本,
脚本只有短短40几行代码
运行后, 你可以通过在微信发送命令,来拍摄当前电脑的使用者,然后图片会发送到你的微信上,甚至还可以通过微信实现电脑关机。
原理:主程序用到了三个第三方Python库(itchat、opencv、matplotlib)。息。并通过 opencv 来调用电脑的摄像头,把当前使用电脑的用户拍照下来,发送到你的微信上。至于远程关机是通过调用 os 库,发送 cmd 命名即可实现。
看不懂上面的原理没关系,因为老Y现在手把手教大家如何实现,依葫芦画瓢就可以了(适合小白的教程,大神直接看代码就可以了)。
老Y将从以下两个方面详细讲解:
1. 安装Python3.7
2. 运行代码,微信操作
一、安装python3.7
使用python前,当然先要安装了(下面的安装步骤参考的是廖雪峰的博客https://www.liaoxuefeng.com/)。
1. 下载
首先,根据你的Windows版本(64位还是32位)从Python的官方网站下载Python 3.7对应的版本。
64位安装程序:www.python.org/ftp/python/3.7.1/python-3.7.1-amd64.exe
32位安装程序:www.python.org/ftp/python/3.7.1/python-3.7.1.exe
百度网盘下载地址:
https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fpython
2. 双击运行EXE安装包
特别要注意勾上Add Python 3.7 to PATH,然后点“Install Now”即可完成安装。
安装成功后,打开命令提示符窗口(win+R,输入cmd),敲入python后
看到上述画面就说明成功了
3. 安装第三方库
程序中用到了三个第三方Python库,需要安装,方法也很简单,打开命令提示符窗口,
依次输入下面的代码
pip install numpy Matplotlib
pip install opencv-python
pip install itchat
二、运行代码,微信操作
1. 在Python的安装目录下,打开IDLE,将代码复制进去,保存
2. 点击Run—Run Module,或者直接按F5,可以看到代码已经工作,自动跳出微信网页版登录二维码。
3. 打开微信扫一扫登录,这是看到手机端微信的文件传输助手,自动发送了使用方法。
试试看cap命令,完美的老Y偷拍了一张。
另外可以使用shutdown命令,实现微信关闭电脑。
最后贴一下完整的python代码(可左右滑动),也在这里直接下载:http://dwz.date/bcYB
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()
注意:请勿用户商业和非法用途。