Computersteuerung per Telegramm

Eintrag


Hallo Habr!

Vor kurzem wollte ich eine Anwendung zur Steuerung der Maus auf einem Computer installieren, hatte jedoch Probleme beim Anschließen des Telefons und hatte die Idee, selbst etwas Ähnliches zu tun, aber wie? Nachdem ich einige Optionen durchgesehen hatte, erinnerte ich mich an Telegramm-Bots, die sich gut für ähnliche Aufgaben in der Textversion eignen. Sie schreiben beispielsweise den Bot "/ open chrome" und Chrome wird auf Ihrem Computer geöffnet.

Was brauchen wir


Ich werde den Bot in Python schreiben und die folgenden Bibliotheken verwenden: flask, pyngrok, request, win32com.client, os, subprocess. Später in diesem Artikel werde ich erklären, warum wir eine Bibliothek brauchen. Wir brauchen auch ein Telegramm auf einem Telefon, Tablet oder sogar auf einem anderen Computer. Und wir brauchen auch einen Telegramm-Bot, den wir schreiben, wie Sie ihn selbst erstellen können, denn es gibt bereits genug solcher Artikel auf Habré!

Wie wird das alles funktionieren?


Wenn wir an unseren Bot schreiben, sendet er eine Post-Anfrage mit Daten über die Nachricht und über den Benutzer, der sie an unsere URL gesendet hat. Danach führt unser Python-Skript je nach Text bestimmte Aktionen aus, z. B. das Starten von Anwendungen, das Eingeben von Text oder sogar Computer herunterfahren.

Implementierung


Erstellen Sie zuerst unsere Python-Datei, die ich main.py nennen werde, importieren Sie alle benötigten Bibliotheken (aber zuerst müssen wir sie über pip installieren):

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

Um jetzt Anfragen vom Bot zu erhalten, müssen wir Flask und dann Pyngrok ausführen, um nicht nur im lokalen Netzwerk auf unsere Site zuzugreifen:

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

Jetzt konfigurieren wir den Bot - wir werden Anfragen an unseren Server senden:

 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") #         

Erstellen wir eine Funktion, damit der Bot auf unsere Nachrichten reagieren kann:

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

Gehen Sie nun zu der Funktion, die Nachrichten vom Bot verarbeitet und Befehle ausführt:

 @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     

Und dennoch müssen einige Zeilen hinzugefügt werden, mit denen Flask zu arbeiten begann:

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

Noch ein paar Worte vom Autor


Möglicherweise kann dieses Skript die Computersteuerung nicht vollständig ersetzen, aber Sie können viele Befehle vom Einschalten der Musik bis zum Starten Ihrer Entwicklungsumgebung eingeben. Vielen Dank für das Lesen! Wenn Sie Probleme haben oder Fragen haben, schreiben Sie in die Kommentare, aber ich habe es!

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


All Articles