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 相关文章推荐
编写自定义的Django模板加载器的简单示例
Jul 21 Python
简单谈谈python中的多进程
Nov 06 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
numpy中loadtxt 的用法详解
Aug 03 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
python+splinter自动刷新抢票功能
Sep 25 Python
django settings.py 配置文件及介绍
Jul 15 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
Python是怎样处理json模块的
Jul 16 Python
python定义类的简单用法
Jul 24 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
PHP 一个随机字符串生成代码
2010/05/26 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP中Array相关函数简介
2016/07/03 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
移动端js图片查看器
2016/11/17 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
python Django模板的使用方法
2016/01/14 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python画双y轴图像的示例代码
2019/07/07 Python
Python tkinter模版代码实例
2020/02/05 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
求职自荐信怎么写
2014/03/06 职场文书
疾病捐款倡议书
2014/05/13 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
生产实习心得体会范文
2016/01/22 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python