Controle de computador via Telegram

Entrada


Olá Habr!

Recentemente, eu queria instalar um aplicativo para controlar o mouse em um computador, mas tive problemas para conectar o telefone e tive a ideia de fazer algo semelhante, mas como? Depois de analisar várias opções, lembrei-me dos bots de telegrama que podem ser bastante adequados para fazer algo semelhante na versão em texto; por exemplo, você escreve o bot "/ open chrome" e o Chrome é aberto no seu computador.

Do que precisamos?


Escreverei o bot em Python e utilizarei as seguintes bibliotecas: flask, pyngrok, orders, win32com.client, os, subprocess. Mais adiante neste artigo, explicarei por que precisamos de uma biblioteca. Também precisamos do Telegram no telefone, tablet ou mesmo em outro computador. E também precisamos de um bot de telegrama que escreveremos como você pode criá-lo, porque já existem artigos suficientes sobre Habré!

Como isso tudo vai funcionar?


Quando escrevemos para o nosso bot, ele envia uma pós-solicitação com dados sobre a mensagem e sobre o usuário que a enviou para o nosso URL, após o qual nosso script python, dependendo do texto, executará determinadas ações, como iniciar aplicativos, inserir texto ou até mesmo desligamento do computador.

Implementação


Primeiro, crie nosso arquivo python, que chamarei de main.py, importe todas as bibliotecas de que precisamos (mas primeiro precisamos instalá-las via pip):

from flask import Flask, request from pyngrok import ngrok import requests import subprocess import os import win32com.client 

Agora, para receber solicitações do bot, precisamos executar o Flask e, em seguida, executar o Pyngrok para acessar nosso site, não apenas na rede local:

 app = Flask(__name__) # flask ngrok_url = ngrok.connect(port=5000).replace('http','https') # ngrok 

Agora vamos configurar o bot - faremos solicitações ao nosso servidor:

 token = 'token       BotFather' #token  URL = 'https://api.telegram.org/bot'+token+'/' requests.get(URL+'setWebhook?url='+ngrok_url) # url  webhook   shell = win32com.client.Dispatch("WScript.Shell") #         

Vamos criar uma função para que o bot possa responder às nossas mensagens:

 def sendMessage(chat_id,text): url = URL+"sendMessage?chat_id="+str(chat_id)+"&text="+str(text) requests.get(url) 

Agora vá para a função que processará as mensagens do bot e executará os comandos:

 @app.route('/', methods=['POST','GET']) #          index def index(): if request.method=='POST': #   post  r = request.get_json() # json chat_id = r["message"]["chat"]["id"] #   id      username = r["message"]["from"]["username"] # username     text = r["message"]["text"] #   msg = text.split() #       cmd = msg[0] #    l = len(msg) #  if username==' username': #     if cmd=='/cmd' and l>1: #  /cmd proc = subprocess.Popen(text[5:], shell=True, stdout=subprocess.PIPE).communicate() #      /cmd sendMessage(chat_id, proc[0].decode('cp866')) #     Telegram elif cmd=='/ntp': #  /ntp os.system('notepad.exe') #  elif cmd=='/off': #  /off os.system('shutdown -p') #  elif cmd=='/p': #  /p shell.SendKeys(text[3:]) #      return 'Hello World!' # -   ngrok_url     

E ainda é necessário adicionar algumas linhas que o Flask começou a trabalhar:

 if __name__=='__main__': app.run() 

Mais algumas palavras do autor


Talvez esse script não consiga substituir completamente o controle do computador, mas você pode criar muitos comandos, desde ativar a música até iniciar o ambiente de desenvolvimento. Obrigado a todos por ler isso! Se você tiver problemas ou tiver alguma dúvida, escreva nos comentários, mas eu tenho!

Source: https://habr.com/ru/post/pt450524/


All Articles