El bot monitorea y controla la computadora a través de telegramas

¿De qué bot estás hablando?


Este es un bot que yo mismo escribí usando Python.

Si escribe el bot "s", el bot tomará una captura de pantalla y se lo enviará de vuelta.

Si el bot escribe "pregunta xxxxxxxxxxxxxxxx?", Donde xxxxxxxxxxxxxxxx es su pregunta, se abrirá una ventana en toda la pantalla de la computadora en la que se escribe su pregunta y el formulario de respuesta, después de lo cual la persona tendrá la oportunidad de escribir la respuesta a su pregunta y haga clic en "Enviar" , después de lo cual el bot le devolverá lo que respondió la persona.

También puede escribir cualquier cosa en el bot, y en la computadora se abre un cuadro de diálogo con un botón "ok" y el contenido que escribió.

Cómo usé este bot


Lo lancé antes de salir de la tienda, luego entré en el telegrama al bot y tomé capturas de pantalla. Entonces mi hermano menor se sentó frente a la computadora y comenzó a hacer su trabajo allí.
Luego escribí el siguiente mensaje al bot: "la pregunta, ¿por qué te sentaste en la computadora?", Y se veía así:

imagen

Bueno, nos comunicamos con él allí y al llegar a casa acordamos que ya no haría eso :)

¿Cómo lo escribí?


Conozco Python desde hace mucho tiempo, y lo sé bien, por lo que no fue difícil escribir un bot así.
Para más o menos programadores.

Usé bibliotecas: telebot, PyQt5, sys, tkinter, pyautogui, y eso es todo, eso fue suficiente para mí.

Aquí está el código fuente del programa:

import telebot as TL#          
from PyQt5.QtWidgets import QMessageBox#    messagebox     
import PyQt5#     
import sys#     
from tkinter import *#     ,          
from pyautogui import screenshot#    pyautogui   

token = input("  : ")

def vopros(mess,msg):#     
    def ok_btn(entr,msg,root):#     ,       ""
        msg = msg
        root = root
        msg(": "+entr.get())
        root.destroy()
    root = Tk()#   tkinter  
    root.geometry("200x200")#   
    root.attributes("-fullscreen",True)# ,         
    root.lift()#   lift,     
    lab = Label(root,text=mess)# ,          
    entr = Entry(root)#  
    btn_ok = Button(text="",command=lambda: ok_btn(entr,msg,root))#  "",     "ok_btn",     :  ,   ,  
    lab.pack()# 
    entr.pack()#  
    btn_ok.pack()##  ""
    root.mainloop()#  


def msg_mean(mess):#      
    newApp = PyQt5.QtWidgets.QApplication(sys.argv)#    PyQt5
    msg = QMessageBox()#   
    msg.setWindowTitle("")#     
    msg.setText(mess)#   ,    
    msg.setIcon(QMessageBox.Critical)#    
    x = msg.exec_()# 

bot = TL.TeleBot(token)#  "bot",     
@bot.message_handler(commands=['start'])#   bot  
def start_message(message):#        
                           #      ,    start 
                           #   
    bot.send_message(message.chat.id, ',  :)')#    " "

@bot.message_handler(content_types=['text'])#   bot  
def send_text(message):#    ()      
    def msg(message_text):#     
        bot.send_message(message.chat.id, str(message_text))#  id    ,          
    def snd_doc(name_doc):#     "msg",      (      )
        bot.send_document(message.chat.id, open(name_doc,"rb"))
    if message.text[:6] == "":#         "",      
        vopros(message.text,msg)#        
    else:#  
        if message.text == "s":#    "s"
            screen = screenshot('s.jpg')#   
            snd_doc("s.jpg")#      "snd_doc" 
        else:#      "s"    "",     
            msg_mean(message.text)#        


while True:#      
    try:
        bot.polling()#  
    except(BaseException):
        pass#   
    #         
    #      


Como puede ver, el bot no es complicado, pero hay errores:

  • se puede deshabilitar fácilmente a través del administrador de tareas,
  • si envía muchos mensajes, entonces solo vuela.

Y alguna persona puede conectarse a su bot (si sabe cómo se llama su bot) y observar la computadora.

Afortunadamente, sé cómo solucionarlo, y tal vez solucionarlo si te gusta ese bot.

¿Qué pasa en el bot?


Primero, inicializo todas las bibliotecas que usará el bot.

import telebot as TL#          
from PyQt5.QtWidgets import QMessageBox#    messagebox     
import PyQt5#     
import sys#     
from tkinter import *#     ,          
from pyautogui import screenshot#    pyautogui   

A continuación, creo una función de pregunta:

def vopros(mess,msg):#     
    def ok_btn(entr,msg,root):#     ,       ""
        msg = msg
        root = root
        msg(": "+entr.get())
        root.destroy()
    root = Tk()#   tkinter  
    root.geometry("200x200")#   
    root.attributes("-fullscreen",True)# ,         
    root.lift()#   lift,     
    lab = Label(root,text=mess)# ,          
    entr = Entry(root)#  
    btn_ok = Button(text="",command=lambda: ok_btn(entr,msg,root))#  "",     "ok_btn",     :  ,   ,  
    lab.pack()# 
    entr.pack()#  
    btn_ok.pack()##  ""
    root.mainloop()#  

A continuación, creo una función que mostrará un mensaje al usuario en la PC:

def msg_mean(mess):#      
    newApp = PyQt5.QtWidgets.QApplication(sys.argv)#    PyQt5
    msg = QMessageBox()#   
    msg.setWindowTitle("")#     
    msg.setText(mess)#   ,    
    msg.setIcon(QMessageBox.Critical)#    
    x = msg.exec_()# 

Luego puedes hacer el telegrama y el bot en sí, crear un bot:

bot = TL.TeleBot(token)#  "bot",     

Y creo la primera función que responderá al comando "/ start" en el telegrama:

def start_message(message):#        
                           #      ,    start 
                           #   
    bot.send_message(message.chat.id, ',  :)')#    " "

Luego también trabajamos con telegramas, y ahora creamos una función que recibirá un mensaje del usuario:

@bot.message_handler(content_types=['text'])#   bot  
def send_text(message):#    ()      

Y en él creamos dos funciones, estas son msg y snd_doc.

    def msg(message_text):#     
        bot.send_message(message.chat.id, str(message_text))#  id    ,          
    def snd_doc(name_doc):#     "msg",      (      )
        bot.send_document(message.chat.id, open(name_doc,"rb"))

Luego recibimos un mensaje del usuario del bot y verificamos lo que quería:

    if message.text[:6] == "":#         "",      
        vopros(message.text,msg)#        
    else:#  
        if message.text == "s":#    "s"
            screen = screenshot('s.jpg')#   
            snd_doc("s.jpg")#      "snd_doc" 
        else:#      "s"    "",     
            msg_mean(message.text)#        

Solo queda lanzar el bot:

while True:#      
    try:
        bot.polling()#  
    except(BaseException):
        pass#   
    #         
    #      

Eso es todo, así es como funciona.

¿Cómo usar tal bot?


Puede parecer complicado, pero si haces todo de acuerdo con las instrucciones, entonces nada complicado.

instrucción


Encuentre en el telegrama del bot llamado @BotFather,
se ve así: a imagen
continuación, escríbale un comando para crear un nuevo bot, el comando se ve así: / newbot

imagen
A continuación, llame a su bot como desee, pero debe nombrarlo individualmente, es decir. para que no exista tal bot en el mundo, por ejemplo: BotStepana3215.



A continuación, deberá encontrar el nombre de su bot, y asegúrese de prefijar "bot", por ejemplo, llamaré a mi nombre así: BotStepana3215_bot:



Y @BotFather le dará el token de su bot, se ve así:



Este token no se puede dar a nadie más, porque puede cambia el bot.

Y queda copiar el token, guardarlo en algún lugar de un archivo de texto (es más conveniente copiarlo desde allí), ejecutar el programa e ingresar el token allí.

Y ahora puede escribir en su bot que acaba de crear (se puede encontrar en la búsqueda de telegramas por apellido, en mi caso @ BotStepana3215_bot), y todo lo que enumeré desde su funcionalidad funcionará para usted.

¿Dónde conseguir tal bot?


Aquí tengo .exe y .py en github

Pero .exe es solo para Windows 10.

Disfruta el programa y escribe reseñas.

Buena suerte

All Articles