python練手_簡單的微信遠程控制電腦

軟件沒有圖形界面,打開之后只有一個命令提示符窗口。

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

<1> 手機微信掃碼登陸
<2> 用手機發(fā)微信給自己,如“遠程#截圖”
<3> 程序會截屏,然后發(fā)回。

目前有的功能:

<1> “遠程#幫助” --獲取幫助信息
<2> “遠程#截圖” --截圖發(fā)回
<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):
    '''對暗號,然后執(zhí)行指令'''
    if password == '遠程':                 # 對暗號
        if '#' not in do_what:           # 如果一級指令中不包含符號#,即:沒有二級指令
            print('接收到遠程指令: '+do_what)
            if do_what == '幫助':         
                read_me()                # 發(fā)送幫助信息
            elif do_what == '截圖':
                img_to_myself()          # 發(fā)送截圖給自己
            elif do_what == '關機':
                shutdown_pc()            # 執(zhí)行本機關機

        elif '控制#' in do_what:         # 如果一級指令中還有符號#,即:含有二級命令,格式如:遠程#控制#explorer
            control_command = do_what.split('#')[1]     # 以#分割,取第二個元素,即:二級指令,如:explorer
            print('接收到二級指令: ' + control_command)
            control_pc(control_command)  # 控制計算機執(zhí)行相關指令

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)      # 發(fā)送幫助信息

def img_to_myself():
    '''一級指令:本機截圖'''
    print('執(zhí)行截圖……')
    ImageGrab.grab().save(imgName)                      # 截圖并保存,文件名在預設中設置
    itchat.send_image(imgName, toUserName=myUserName)   # 微信發(fā)送截圖給自己
    date_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))  #獲取當前時間,并轉(zhuǎn)格式
    time_msg = '[%s]'%date_time                     # 編輯消息,這里是:時間外面加括號,可自定義。
    itchat.send(time_msg, toUserName=myUserName)        # 發(fā)送消息,截圖時間

def shutdown_pc():
    '''一級指令:本機關機'''
    print('執(zhí)行關機……')
    os.system('shutdown -s -t 60')                      # 執(zhí)行計算機系統(tǒng)指令,這里是60秒后關機
    warning_msg = '60秒后關機,取消如下:\n遠程#控制#shutdown -a'     # 發(fā)送警告消息,提醒取消指令
    itchat.send(warning_msg, toUserName=myUserName)

def control_pc(control_command):                          
    '''二級指令,計算機執(zhí)行系統(tǒng)指令,如:explorer是資源管理器,shutdown是關機命令,具體百度cmd命令大全'''
    print('執(zhí)行二級命令……')
    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()   # 發(fā)送幫助信息
    itchat.run()

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容