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分割和拼接字符串
Nov 01 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
跟老齐学Python之大话题小函数(2)
Oct 10 Python
python中reduce()函数的使用方法示例
Sep 29 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
Python WSGI的深入理解
Aug 01 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
怎么用Python识别手势数字
Jun 07 Python
Python操作CSV格式文件的方法大全
Jul 15 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后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
javascript Array对象基础知识小结
2010/11/16 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
详解Vue之计算属性
2020/06/20 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
Python的动态重新封装的教程
2015/04/11 Python
python对url格式解析的方法
2015/05/13 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
实习自我鉴定范文
2013/10/30 职场文书
计生专干事迹
2014/05/28 职场文书
新年寄语2016
2015/08/17 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书