美文网首页
python练手_简单的微信远程控制电脑

python练手_简单的微信远程控制电脑

作者: PengJenas | 来源:发表于2018-09-13 16:39 被阅读0次

    软件没有图形界面,打开之后只有一个命令提示符窗口。

    界面.jpg 微信远程.png
    使用方法:

    <1> 手机微信扫码登陆
    <2> 用手机发微信给自己,如“远程#截图”
    <3> 程序会截屏,然后发回。

    目前有的功能:

    <1> “远程#帮助” --获取帮助信息
    <2> “远程#截图” --截图发回
    <3> “远程#关机” --电脑关机
    <4> "远程#控制#explorer" --其中的“explorer”可以换成其他CMD命令

    # -*- coding: utf-8 -*-
    
    # 作者:Jenas
    
    import os,time
    import itchat    # pip install itchat
    from PIL import ImageGrab    # pip install pillow
    
    @itchat.msg_register(itchat.content.TEXT)            # 封装好的装饰器,当接收到的消息是'TEXT'类型
    def receive_wechat(msg):
        '''接收微信指令,判断消息是否来自自己并且包含符号#,其中#前面的是指令暗号,#后面的是具体指令。'''
        if msg['FromUserName'] == myUserName and '#' in msg['Text']:
            password = msg['Text'].split('#',1)[0]          # 以#来分割消息字符串1次,取第一个元素,即:暗号。
            do_what = msg['Text'].split('#',1)[1]           # 取第二个元素,即:指令。只分割一次,因为可能包括二级指令,如:远程#控制#explorer
            wechat_do(password, do_what) 
    
    def wechat_do(password,do_what):
        '''对暗号,然后执行指令'''
        if password == '远程':                 # 对暗号
            if '#' not in do_what:           # 如果一级指令中不包含符号#,即:没有二级指令
                print('接收到远程指令: '+do_what)
                if do_what == '帮助':         
                    read_me()                # 发送帮助信息
                elif do_what == '截图':
                    img_to_myself()          # 发送截图给自己
                elif do_what == '关机':
                    shutdown_pc()            # 执行本机关机
    
            elif '控制#' in do_what:         # 如果一级指令中还有符号#,即:含有二级命令,格式如:远程#控制#explorer
                control_command = do_what.split('#')[1]     # 以#分割,取第二个元素,即:二级指令,如:explorer
                print('接收到二级指令: ' + control_command)
                control_pc(control_command)  # 控制计算机执行相关指令
    
    def read_me():
        '''一级指令:帮助信息'''
        readme_msg = '帮助信息:\n'
        readme_msg += '远程#截图\n'
        readme_msg += '远程#关机\n'
        readme_msg += '远程#控制#explorer\n'
        #print(readme_msg)
        itchat.send(readme_msg, toUserName=myUserName)      # 发送帮助信息
    
    def img_to_myself():
        '''一级指令:本机截图'''
        print('执行截图……')
        ImageGrab.grab().save(imgName)                      # 截图并保存,文件名在预设中设置
        itchat.send_image(imgName, toUserName=myUserName)   # 微信发送截图给自己
        date_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))  #获取当前时间,并转格式
        time_msg = '[%s]'%date_time                     # 编辑消息,这里是:时间外面加括号,可自定义。
        itchat.send(time_msg, toUserName=myUserName)        # 发送消息,截图时间
    
    def shutdown_pc():
        '''一级指令:本机关机'''
        print('执行关机……')
        os.system('shutdown -s -t 60')                      # 执行计算机系统指令,这里是60秒后关机
        warning_msg = '60秒后关机,取消如下:\n远程#控制#shutdown -a'     # 发送警告消息,提醒取消指令
        itchat.send(warning_msg, toUserName=myUserName)
    
    def control_pc(control_command):                          
        '''二级指令,计算机执行系统指令,如:explorer是资源管理器,shutdown是关机命令,具体百度cmd命令大全'''
        print('执行二级命令……')
        try:
            os.system(control_command)
        except:
            pass
    
    if __name__ == "__main__":
        itchat.auto_login(hotReload=True)                            # 扫码登陆微信
        imgName = "my_screenshot.png"                                # 预设截图文件名
        myUserName = itchat.get_friends(update=True)[0]["UserName"]  # 获取微信中自己的UserName
        read_me()   # 发送帮助信息
        itchat.run()
    
    

    相关文章

      网友评论

          本文标题:python练手_简单的微信远程控制电脑

          本文链接:https://www.haomeiwen.com/subject/gftggftx.html