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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
python中zip和unzip数据的方法
May 27 Python
python搭建微信公众平台
Feb 09 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
numpy.where() 用法详解
May 27 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
Python3 中sorted() 函数的用法
Mar 24 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
python中使用np.delete()的实例方法
Feb 01 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
php5中类的学习
2008/03/28 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
php简单smarty入门程序实例
2015/06/11 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
laravel自定义分页效果
2017/07/23 PHP
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
幼儿园教师培训制度
2014/01/16 职场文书
会计自我鉴定
2014/02/04 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript