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中的map、reduce和filter浅析
Apr 26 Python
Python中运算符"=="和"is"的详解
Oct 08 Python
django定期执行任务(实例讲解)
Nov 03 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
Python Cookie 读取和保存方法
Dec 28 Python
Python 一句话生成字母表的方法
Jan 02 Python
python实现的发邮件功能示例
Sep 11 Python
python3使用GUI统计代码量
Sep 18 Python
python从内存地址上加载python对象过程详解
Jan 08 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
Python 中如何写注释
Aug 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
php常用Stream函数集介绍
2013/06/24 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
PHP模块化安装教程
2016/06/01 PHP
PHP调用其他文件中的类
2018/04/02 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
python打开网页和暂停实例
2014/09/30 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
python3 配置logging日志类的操作
2020/04/08 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
学校食品安全实施方案
2014/06/14 职场文书
植树节标语
2014/06/27 职场文书
化工见习报告范文
2014/10/31 职场文书
学校施工安全责任书
2015/01/29 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
浅谈Vue的computed计算属性
2022/03/21 Vue.js
golang语言指针操作
2022/04/14 Golang