python 使用微信远程控制电脑
今天来分享一个“高大上”的技术——使用python编写一个能够用微信远程控制电脑的程序!
先来分析一下控制的详细流程:
我们使用微信给特定的邮箱发送一封邮件,当中包括了我们想要电脑运行的命令。然后电脑上的python程序获取到这封邮件,然后解析当中的命令,再交付给电脑运行。能够看出。这当中基本的技术难点就是获取邮件了!可是!这没有不论什么问题。大家看到我的上一篇博客《python 收发邮件》 http://blog.csdn.net/ivan_zgj/article/details/51013833
就能够了。以下给出使用python收发邮件并运行邮件命令的代码。
# -*- coding:utf-8 -*-
from email.mime.text import MIMEText
import poplib
import smtplib
import os class MailManager(object): def __init__(self):
self.popHost = 'pop.sina.com'
self.smtpHost = 'smtp.sina.com'
self.port = 25
self.userName = 'ivanzgj@sina.com'
self.passWord = 'zgj123'
self.bossMail = '475176416@qq.com'
self.login()
self.configMailBox() # 登录邮箱
def login(self):
try:
self.mailLink = poplib.POP3_SSL(self.popHost)
self.mailLink.set_debuglevel(0)
self.mailLink.user(self.userName)
self.mailLink.pass_(self.passWord)
self.mailLink.list()
print u'login success!'
except Exception as e:
print u'login fail! ' + str(e)
quit() # 获取邮件
def retrMail(self):
try:
mail_list = self.mailLink.list()[1]
if len(mail_list) == 0:
return None
mail_info = mail_list[0].split(' ')
number = mail_info[0]
mail = self.mailLink.retr(number)[1]
self.mailLink.dele(number) subject = u''
sender = u''
for i in range(0, len(mail)):
if mail[i].startswith('Subject'):
subject = mail[i][9:]
if mail[i].startswith('X-Sender'):
sender = mail[i][10:]
content = {'subject': subject, 'sender': sender}
return content
except Exception as e:
print str(e)
return None def configMailBox(self):
try:
self.mail_box = smtplib.SMTP(self.smtpHost, self.port)
self.mail_box.login(self.userName, self.passWord)
print u'config mailbox success!'
except Exception as e:
print u'config mailbox fail! ' + str(e)
quit() # 发送邮件
def sendMsg(self, mail_body='Success!'):
try:
msg = MIMEText(mail_body, 'plain', 'utf-8')
msg['Subject'] = mail_body
msg['from'] = self.userName
self.mail_box.sendmail(self.userName, self.bossMail, msg.as_string())
print u'send mail success!'
except Exception as e:
print u'send mail fail! ' + str(e) if __name__ == '__main__':
mailManager = MailManager()
mail = mailManager.retrMail()
if mail is not None:
cmd = mail['subject']
os.system(cmd)
mailManager.sendMsg()
上述代码的逻辑是:邮件的主题为要运行的命令,然后python获取邮箱的邮件,解析其主题,然后交到命令行运行。
运行成功后发送一封success的邮件给我。
以下測试一下。
我使用qq邮箱给我指定的邮箱发送了以下这样一封邮件。
这封邮件的命令是要打开mail.py这个文件。然后我们在电脑上执行上述代码程序,就能够看到其打开了mail.py这个文件了!
如今,这个程序仅仅会执行一次,然后就会退出。我们仅仅要给它加个死循环就能够让它一直执行了~
if __name__ == '__main__':
while True:
mailManager = MailManager()
mail = mailManager.retrMail()
if mail is not None:
cmd = mail['subject']
os.system(cmd)
mailManager.sendMsg()
time.sleep(5)
如今我们仅仅要执行其这个程序,然后我们拿着手机,打开微信。一封邮件,便可随时远控电脑!想想。你们拿着这个程序,打包一下,然后悄悄地撞到你心仪的妹子电脑上。趁她不注意的时候。发一封邮件。然后让妹子的电脑干点什么事情(比如显示一段文字表白什么的),想想都非常激动呢!
。!
好的。以下直接给出一个源代码链接吧。
python 使用微信远程控制电脑的更多相关文章
- 使用python实现用微信远程控制电脑
首先,我们要先看看微信远程控制电脑的原理是什么呢? 我们可以利用Python的标准库控制本机电脑,然后要实现远程的话,我们可以把电子邮件作为远程控制的渠道,我们用Python自动登录邮箱检测邮件,当我 ...
- python小项目之微信远程控制
前两天接触了一个有趣的python模块--itchat,这个模块可以非常方便的操作微信,今天就来使用这个模块来实现微信远程控制. 环境准备 itchat模块不是python标准模块(内置模块),是一个 ...
- python远程控制电脑
python拥有大量的第三方库,且语法简单.今天老杨就用python实现远程控制电脑 所谓,谋定而后动,在实现任何一个需求之前,我们需要先分析,捋清楚一个思路,远程控制电脑,无非就是接收远程的命令 ...
- Python之微信-微信好友头像合成
仔细看下图,你的头像就藏在里面哦!!! 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做出来的图看着会更刺激些. 看完了图,你可能想知道这个图咋做出来的,不会是我闲着无聊把把好友头像 ...
- 利用python在微信群中签到、抢沙发(适用于任何账号)
利用python在微信群中签到.抢沙发 注意 程序仅能在电脑上运行,运行时需要保证群界面在最前端且不被移动. 背景 我是一名高中生(2020年),疫情期间,在家上网课,有的老师让我们在班群里签到. 其 ...
- 微信网页版APP - 网页微信客户端电脑版体验
微信网页版很早就出来了,解决了很多人上班不能玩手机的问题.微信电脑版-网页微信客户端,直接安装在桌面的微信网页版,免去了开浏览器的麻烦.双击就启动了,和其他的应用程序一样:运行过程中可以隐藏在桌面右下 ...
- python实现微信接口(itchat)
python实现微信接口(itchat) 安装 sudo pip install itchat 登录 itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实 ...
- 细数Python Flask微信公众号开发中遇到的那些坑
最近两三个月的时间,断断续续边学边做完成了一个微信公众号页面的开发工作.这是一个快递系统,主要功能有用户管理.寄收件地址管理.用户下单,订单管理,订单查询及一些宣传页面等.本文主要细数下开发过程中遇到 ...
- 利用Python查看微信共同好友
思路 首先通过itchat这个微信个人号接口扫码登录个人微信网页版,获取可以识别好友身份的数据.这里是需要分别登录两人微信的,拿到两人各自的好友信息存到列表中. 这样一来,查共同好友就转化成了查两个列 ...
随机推荐
- nodeJS学习(2)--- NPM 使用介绍
前言:express 推出了4.X,自己尝试了一下,出现了各种问题.结果查看了各种文档和问题,现在在这个给大家分享下4.X版本的安装. NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具, ...
- 自动从网站上面下载文件 .NET把网站图片保存到本地
原文发布时间为:2009-11-19 -- 来源于本人的百度文章 [由搬家工具导入] 自动从网站上面下载文件 .NET把网站图片保存到本地简单范例:这个范例是把百度联盟这个logo保存到根目录下面,当 ...
- 乌班图中的ssh服务
SSH服务(TCP端口号22):安全的命令解释器 为客户机提供安全的Shell 环境,用于远程管理 ...
- 在 CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本
MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...
- Python Challenge 第七关
第七关,只有一张图片,右键源代码也什么都没有,只是这图片上有一行类似马赛克一样的部分.看来答案只有在这张图上找了.下载了图片,去网上搜一下有什么库可以处理图像.搜到了一个PIL,发现安装的python ...
- 某考试 T2 Tree
2 树 2.1 题目描述 给一棵n 个节点的树,节点分别编号为0 到n - 1.你可以通过如下的操作来修改这棵树:首先先删去树上的一条边,此时树会分裂为两个连通块,然后在两个连通块之间加上一条新的边使 ...
- ajax简单案例
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 【hash】什么是hash,什么是哈希,什么是hash散列,什么是hash一致性算法【关于hash的详解】
什么是hash,什么是哈希,什么是hash散列,什么是hash一致性算法
- Java线程状态中BLOCKED和WAITING有什么差别?
刚才在看CSDN的问答时.发现这个问题. 原问题的作者是在观察jstack的输出时提出的疑问.那么BLOCKED和WAITING有什么差别呢? 答复在JDK源代码中能够找到,例如以下是java.lan ...
- 剑指Offer面试题51(Java版):数组中反复的数字
题目:在一个长度为n的数组里的全部数字都在0到n-1的范围内. 数组中某些数字是反复的,但不知道有几个数字反复了.也不知道每一个数字反复的次数.请找出数组中随意一个反复的数字. 比如假设输入长度为7的 ...