女朋友给你发微信,你能秒回吗?,尤其是在你敲代码敲到激情之时(emmmm,或者说杀的正爽时?),当然是 ———— 可以秒回的? ,才不屑于用图灵机器人什么的,我们程序员?自有办法,当然是python可以实现。

网上看了看,发现一个很有意思的库itchat
大致看了一下介绍,发现十分有用

它既可以接收你的message指令,还可以用itchat.send(**, 'filehelper')发送你需要的内容了,我们可以将输入的命令让电脑执行,并接收命令返回的内容?,这不就解决问题了这简直就是一个宝库,我们可以实现很多有趣的功能?

实现控制电脑的cmd命令

os.popen(command)

command是你可以指定输入的指令
一般我们这样用

import os
command =  'help'
output = os.popen(command)
info = output.readlines()
a=[]
for line in info:a.append(line.strip('/r'))
b=''.join(a)
print(b)

command指令可以自己改,当然你也可以在for循环里面直接输出line,不过会一行一行输出,不利于微信后端的获取和系统执行的效率,所以我们变成str类型,运行结果和在cmd的结果肯定是一样的,但是是以文字方式显示出来?

用这个能干什么呢,简单点,我们可以用来实现电脑的定时关机或者重启,举个栗子:1小时后自动关机,输入shutdown -s -t 3600,其中-s是关机,-t是定时,3600是3600秒。 shutdown -r 是重启,往深了说,查看网络连接,端口协议等,也是轻而易举的(手动滑稽)

实时屏幕

这里用到了cv2库,首先说一下安装代码:pip install opencv-python要切记切记不是pip install cv2 ,我这里是3.6.5,也可能跟版本有关,安装是这样按,但是导入的时候我们用的是import cv2
原理是利用了cv2的屏幕捕捉,得到了电脑的实时屏幕,类似于截图的功能,说起来截图也可以使用win32,就是使用Windows自带的程序,但是一张图片就4M左右,执行效率虽然说是比比cv2要高一点,但是作为用户,其实不容易感受到差别,所以我选用了cv2,大致思路如下,详细代码在最后放出

import cv2
cap = cv2.VideoCapture(0)
ret, img = cap.read()
cv2.imwrite(filepath,img)
cap.release()

查看文件和传输文件

查看文件用cmd的dir命令就可以查看,但是稍微复杂了一点,有些不懂命令的就不能直接使用了,所以把两个放出来写了,另外发送文件用itchat.send_file(filepath,'filehelper')这里有个小建议,先把文件后缀名显示出来再用这个程序?

先说查看文件

def list_folders_files(path):list_folders = []list_files = []for file in os.listdir(path):file_path = os.path.join(path, file)if os.path.isdir(file_path):list_folders.append(file)else:list_files.append(file)return (list_folders, list_files)

使用这个函数就可以得到指定路径(path)下的所有文件夹和文件了

再说一下传输文件

newpath = path.encode("utf-8").decode("utf-8")
itchat.send_file(newpath,'filehelper')

为什么要写第一句话呢?因为编码问题(令人特别特别头大的问题,在我另一个项目字频统计中也遇到了,但未解决☹️)感兴趣的可以在这查看Unicode之痛,简单的来说就是中文文字变成计算机可以识别的文字需要的步骤,但是这样还不行☹️,发送普通的英文文件是可以的,只要路径中有中文就不行,试了很久不行之后我看了看官方文档,发现了中文文件无法上传的办法

中文文件名文件上传
Q: 为什么中文的文件没有办法上传?

A: 这是由于requests的编码问题导致的。若需要支持中文文件传输,fields.py (py3版本见这里)文件放入requests包的packages/urllib3下即可

提供链接
python2
python3

有的可能没有这个路径,建议用everything搜索一下fields.py这个文件然后再进行操作,注意:这一步如果未完成的话,程序中的传输文件可能会出问题

让你的电脑说话

这个可以搞恶作剧,非常有意思,假设你室友玩你电脑,电脑突然骂了他一句,这个就很有意思了??
在这里我用了win32,也就是Windows自带的程序
这个程序较为简单,给出代码

import win32com.client as win
speak = win.Dispatch("SAPI.SpVoice")
m='asfwagawgawg'
speak.Speak(m)

虽然声音有点怪怪的,但是起到效果了,可以试试让他说666,他会给你一个耿直的回复:六百六十六??

聊天

我居然忘了最关键的自动回复…
这个和之前的内容是分开的,之前的都属于filehelper的内容,现在是属于聊天内容,但这个我并没有做很多,朋友们可以自行添加啊,可以使用random.choice随机回复,她肯定察觉不出来?,或者可以更高级,做一个类似于人工智能的,识别的她的语句,然后回复相应的信息,这一点csdn的大佬很多,我这小白还不太会?,所以就没有那么深入去做这个
完整代码?

import itchat
import os
import time
import cv2
from PIL import ImageGrab
import win32com.client as win
speak = win.Dispatch("SAPI.SpVoice")sendMsg = u"你好啊"  #可以自己多写几条,随机发送
usageMsg = u"使用方法:(切记以下所有命令中路径注意一定要用 / 而不用 \  ,其中冒号必须为英文状态下的 :)\n"\u"1.运行CMD命令:cmd xxx (xxx为命令)\n" \u"-例子:1小时后自动关机,输入shutdown -s -t 3600,其中-s是关机,-t是定时,3600是3600秒。 shutdown -r 是重启\n" \u"2.获取当前电脑用户:cap\n" \u"3.获取桌面:screen\n" \u"4.获取某个文件夹中的内容:folder + 路径  例如C:/Users/***/Desktop 常用路径\n" \u"5.传输文件:file+路径 例如 file D:/***  \n" \u"6.让电脑说话:voice + 内容\n" \u"7.启用消息助手(默认关闭):ast\n" \u"8.关闭消息助手:astc"
flag = 0 #消息助手开关
nowTime = time.localtime()
s=str(nowTime.tm_year)+'_'+str(nowTime.tm_mon)+'_'+str(nowTime.tm_mday)+ '_'+str(nowTime.tm_hour)+'_'+str(nowTime.tm_min)
filename = s +'.txt'
myfile = open('C:\\Users\\***\\Desktop\\wechat\\chat_record\\'+filename, 'w')def list_folders_files(path):"""返回 "文件夹" 和 "文件" 名字:param path: "文件夹"和"文件"所在的路径:return:  (list_folders, list_files):list_folders: 文件夹:list_files: 文件"""list_folders = []list_files = []for file in os.listdir(path):file_path = os.path.join(path, file)if os.path.isdir(file_path):list_folders.append(file)else:list_files.append(file)return (list_folders, list_files)@itchat.msg_register('Text')
def text_reply(msg):global flagmessage = msg['Text']fromName = msg['FromUserName']toName = msg['ToUserName']s=str(nowTime.tm_year)+'_'+str(nowTime.tm_mon)+'_'+str(nowTime.tm_mday)+ '_'+str(nowTime.tm_hour)+'_'+str(nowTime.tm_min)if toName == "filehelper":if message == "cap":cap = cv2.VideoCapture(0)time.sleep(0.5)ret, img = cap.read()temp=s+'.jpg'cv2.imwrite('C:\\Users\\***\\Desktop\\wechat\\photo\\'+temp, img)itchat.send('@img@%s'%r'C:\\Users\\***\\Desktop\\wechat\\photo\\'+temp, 'filehelper')cap.release()if message[0:5] == "voice":m = message.strip(message[0:6])speak.Speak(m)if message[0:6]== "folder":path = message.strip(message[0:7])temp=[](list_folders, list_files) = list_folders_files(path)  itchat.send('此路径下的文件夹有:', 'filehelper')itchat.send('\n'.join(str(i) for i in list_folders), 'filehelper')           itchat.send('此路径下的文件有(包括其路径 方便复制):','filehelper')for fileName in list_files:if(path[-1]=='/'):filePath = path + fileNameelse:filePath = path + '/' + fileNamestring=(fileName+ '      ' + filePath)temp.append(string)itchat.send('\n'.join(str(i) for i in temp),'filehelper')if message[0:4] == "file":path = message.strip(message[0:5])  newpath = path.encode("utf-8").decode("utf-8")itchat.send_file(newpath,'filehelper')if message[0:3] == "cmd":command = message.strip(message[0:4])output = os.popen(command)info = output.readlines()a=[]for line in info:a.append(line.strip('\r'))b=''.join(a)itchat.send(b, 'filehelper')    if message == "screen":a=ImageGrab.grab()screen=s+'.jpg'a.save(r'C:\\Users\\***\\Desktop\\wechat\\screen\\'+screen)itchat.send('@img@%s'%r'C:\\Users\\***\\Desktop\\wechat\\screen\\'+screen, 'filehelper')if message == "ast":flag = 1itchat.send("消息助手已开启", "filehelper")if message == "astc":flag = 0itchat.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()

注意:标注 ** 的是用户名,你也可以使用别的的路径

使用截图

这个cap我调整了好多次才没拍到我丑陋的宿舍

电脑屏幕的截图(快夸好看?):

我的一个智障室友

在本地保存的聊天文件:
我是根据时间命名的聊天记录,每开一次就会新增一个

之前查看的文件夹:

那就这样吧,而且我感觉我女朋友会打我,不怂!

微信实现秒回以及控制电脑相关推荐

  1. python 通过邮件控制电脑 实现远程控制

    0x00 思路 之前在博客上看到了使用python通过微信的接口,与微信交互的方式来控制电脑的摄像头.开关机等.但是这种方式需要首先在python上登录自己的微信才可以,同时微信端也会有已经在网页端登 ...

  2. python操作微信电脑版_Python使用itchat模块实现简单的微信控制电脑功能示例

    本文实例讲述了Python使用itchat模块实现简单的微信控制电脑功能.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding=UTF-8 import request ...

  3. python 微信模块_Python使用itchat模块实现简单的微信控制电脑功能示例

    本文实例讲述了python使用itchat模块实现简单的微信控制电脑功能.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding=UTF-8 import request ...

  4. 微信有电脑客户端吗_一个小程序,就能让你用手机控制电脑~

    Hello大家好,这里是TopOne软件管家! 现在基本每人必备一个手机和一台电脑,电脑是我们办公所需,但有时候经电脑处理的文件总是忘了转移到U盘或网盘中,人在外想想就难受,那有什么软件可以实现手机控 ...

  5. 女生回你微信忽快忽慢,掌握这5个技巧和3个开场白,让她秒回你

    女生回你微信忽快忽慢,掌握这5个技巧和3个开场白,让她秒回你. 通常我们在和女生联系时,用的最多的的就是通过微信来聊天,与女生相处,我们都希望通过一个好的聊天,来增进双方彼此间的好感,但是结果往往都不 ...

  6. 如何智能秒回女朋友| 微信自动回复

    大家好,我是一个程序员,我有一个很可爱的女朋友. 然而作为一个程序狗,一般晚上都是在码程序,纪念日就是在做项目.让我最苦恼的就是每天晚上都需要在女朋友睡觉前温柔地说晚安,还有秒回女朋友的消息.但是一旦 ...

  7. 微信自动回复 | 如何智能秒回女朋友

    大家好,我是一个程序员,我有一个很可爱的女朋友. 然而作为一个程序狗,一般晚上都是在码程序,纪念日就是在做项目.让我最苦恼的就是每天晚上都需要在女朋友睡觉前温柔地说晚安,还有秒回女朋友的消息.但是一旦 ...

  8. 微信可以远程控制电脑吗_上车| 手机远程控制手机,还可以控制电脑

    对于一个经常使用电脑学习/工作的人来说,每天都要坐在电脑前敲敲这个,点点那个,但是总有比较懒或者有其他事情要走开的时候,这个时候,你是选择硬撑到完成电脑上正在做的事情?还是选择抱着电脑开着热点随时移动 ...

  9. 聊天秒回的人都是生命之光 诉言网

    "信息要发给会秒回的人,微笑要留给对你好的人." 01 我曾经很讨厌一种情况,我给你发了一条微信,你半天不回,我以为你没有玩手机没看到,可过了一会,我刷到你发了一条朋友圈,那时我才 ...

最新文章

  1. PyCharm中Directory与Python package的区别
  2. 显示mac电脑中隐藏的文件和文件夹
  3. 74LS138译码器
  4. 一次性口令设计代码_品牌上新||预算百元,就能买到百搭又有设计感的首饰...
  5. 如何让xtrabackup恢复速度提升20倍?
  6. 使用Spring Boot搭建你的第一个应用程序
  7. Spring Boot&Angular 5&Spring Data&Rest示例(CRUD)
  8. 练习ddt-file_data时,报错UnboundLocalError local variable ‘value‘ referenced before assignment
  9. redis 内存溢出_查漏补缺,Redis为什么会这么快,看完这七点你就知道了
  10. 线性求逆元模板_算法学习笔记(9):逆元
  11. 谷歌和 Zyxel 各修复一个已遭利用的 0day
  12. VUE项目导入bootstrap
  13. 使用免费ssl证书在iis6 https的配置方法!
  14. 详解Haar特征与AdaBoost方法原理
  15. 关于SDIO接口用作TF卡接口的接法以及电压的选择
  16. thinkphp 的 whereIN() 、where IN 如何使用?
  17. 绝地求生 Win10 崩溃解决办法 (提示cmd.exe应用程序错误0xc000124)
  18. iOS开发学习48 OC的lambda block
  19. RoboMaster无人机设计
  20. USB转串口芯片 FT232RL/CH9101/PL2303/CY7C65213同类型芯片参数对比

热门文章

  1. 通俗理解JavaScript闭包
  2. 打造你的专属埃菲尔塔
  3. Java基础篇------抽象类详解
  4. 【青年】第一篇博客文章
  5. 双系统修改开机默认引导项
  6. AppCode Updating indexes一直不停的填坑之旅
  7. 0x80070003系统找不到指定路径_Win7系统安装MySQL之后找不到指定文件与服务如何解决?...
  8. 真无线蓝牙耳机选购小知识,全网口碑前五的真无线蓝牙耳机测评
  9. linux系统部署软件流程图,在Deepin 20系统上安装流程图/架构图软件IAuto,附功能介绍...
  10. 计算机组成原理6 计算机得运算方法