前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python实现开机自启动的远程关机脚本

用python实现开机自启动的远程关机脚本

作者头像
sjw1998
发布2019-09-28 12:46:56
2.2K0
发布2019-09-28 12:46:56
举报
文章被收录于专栏:孤独的S孤独的S

其实这个之前有写过,但是这次优化了一下,代码的量更少,并且加入一个开机自启动脚本。


用python做关机操作其实很简单,目的为了让python关机,

python的关机语句有:

代码语言:javascript
复制
import os
代码语言:javascript
复制
os.system("shutdown -s -t 10")

这个就是关机语句,第四个参数是时间,然后你就可以写一个脚本去执行这个语句就可以了。既你发出一个关机的指令,然后电脑判断出这个指令然后执行相应的代码。

这里我使用的是用邮件去传入执行关机的命令,你也可以使用微信,一样的道理,不过微信比邮件的步骤少,一样脚本开机自动运行,然后登录网页版微信,第一次有登录扫码后,下一次就不用了。然后电脑开机,在手机点击微信登录,然后就可以了,然后选择接受信息的地方,如果接收到一个微信消息是关机的话,电脑就关机,这样看来需要两个微信号和两部手机,所以微信关机还是比邮件关机麻烦一点的,不过还是可以操作的。

使用邮件需要首先获取邮件的授权码,在这里有详细做法Python—利用邮件控制电脑关机,实现远程关机需要两个邮箱来操作,一个是发送关机指令的邮箱,一个是接收指令的邮箱:

完整代码如下:

代码语言:javascript
复制
import time
import os,sys
from imapclient import IMAPClient
import pyzmail

def getemail():
    getemailname = '接收邮件的邮箱'
    password = '接收邮件的邮箱的授权码'
    try:
        myemail = imapobj = IMAPClient('imap.qq.com', ssl=True)
        myemail.login(getemailname,password)
    except:
        return 0
    myemail.select_folder('INBOX', readonly=False)
    UIDS = []
    UIDS = myemail.search(['UNSEEN'])
    rawmesage = myemail.fetch(UIDS, ['BODY[]'])
    for uid in UIDS:
        message = pyzmail.PyzMessage.factory(rawmesage[uid][b'BODY[]'])
        if message.get_subject().startswith('邮件的主题'):
            link = message.text_part.get_payload().decode(message.text_part.charset)
            imapobj.delete_messages(uid)
            subject = message.get_subject().encode('UTF-8')
            subject1 = subject.decode()
            if link == "关机":
                os.system("shutdown -s -t 10")
    myemail.expunge()
    myemail.logout()

if __name__=='__main__':
    count = 0
    while count<20:
        num = getemail()
        if num == 0:
            time.sleep(10)
            count_=1
        else:
            continue

写代码的时候唯一一个坑,在安装pyzmail的时候,需要安装的是pyzmail36,即pip install pyzmail36 然后使用的时候还是依旧import pyzmail。

其他的代码细节可在这里查看Python—利用邮件控制电脑关机,因为没有做发送邮件来做反馈的,所以这个的代码量少很多。

这里主要的重点是让脚本开机自启动。

第一步将你脚本文件名修改后缀为.pyw。

第二步右键此电脑->管理 —>任务计划程序—>任务计划程序库,在右边哪里创建任务。

然后随便输入名称,接着点击触发器,新建,将开始任务设定为登录时,确认

接着打开操作,新建,点击浏览找到你的脚本文件,确认

一般这样就可以,然后重启计算机就可以看到任务管理器进程那里有个python和python32,这样就表示成功,然后你就可以发送邮件测试一下关机了。

一般这个邮件关机脚本运行一段时间后会突然报错,主要是邮箱不让你登录的原因,登录太多次,你可以加个延时登录,这样可以增强脚本的运行时间,再加上一些结束发送个邮件给另一个邮箱的功能,或者开机发送一个开机的邮件的功能,这样会使你的的脚本更加方便的去使用,出错也知道在哪一部分有问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孤独的S 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档