يراقب البوت ويتحكم في الكمبيوتر عبر البرقيات

ما بوت تتحدث؟


هذا بوت كتبته بنفسي باستخدام Python.

إذا كتبت البوت “s” ، فإن البوت سيأخذ لقطة شاشة ويرسلها إليك.

إذا كتب البوت "السؤال xxxxxxxxxxxxxxxx؟" ، حيث xxxxxxxxxxxxxxxx هو سؤالك ، فسيتم فتح نافذة على شاشة الكمبيوتر بالكامل حيث يتم كتابة سؤالك ونموذج الإجابة ، وبعد ذلك ستتاح للشخص الفرصة لكتابة إجابة لسؤالك والنقر على "إرسال" ، وبعد ذلك سيعود البوت إليك ما رد عليه الشخص.

يمكنك أيضًا كتابة أي شيء إلى برنامج التتبُّع ، وعلى الكمبيوتر يفتح مربع حوار بزر "موافق" والمحتويات التي كتبتها.

كيف استخدمت هذا البوت


أطلقته قبل أن أغادر المتجر ، ثم ذهبت للتو إلى البرقية إلى الروبوت وأخذ لقطات شاشة. لذلك جلس أخي الأصغر على الكمبيوتر ، وبدأ في القيام بعمله هناك.
ثم كتبت إلى البوت الرسالة التالية: "السؤال ، لماذا جلست على الكمبيوتر؟" ، وبدا الأمر على هذا النحو:

صورة

حسنًا ، تحدثنا معه هناك وعند وصولنا إلى المنزل اتفقنا على أنه لن يكون هكذا بعد الآن :)

كيف اكتبها؟


لقد عرفت Python لفترة طويلة ، وأنا أعرفها جيدًا ، لذلك لم يكن من الصعب كتابة مثل هذا الروبوت.
للمبرمجين أكثر أو أقل.

استخدمت المكتبات: telebot و PyQt5 و sys و tkinter و pyautogui ، وهذا كل ما يكفي بالنسبة لي.

هذا هو كود المصدر للبرنامج:

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


كما ترى ، فإن البوت ليس معقدًا ، ولكن هناك أخطاء:

  • يمكن تعطيله بسهولة من خلال مدير المهام ،
  • إذا قمت بإرسال الكثير من الرسائل ، ثم يطير فقط.

ويمكن لشخص ما الاتصال بروبوتك (إذا كان يعرف ما هو اسم روبوتك) ومراقبة الكمبيوتر.

لحسن الحظ ، أنا أعرف كيفية إصلاحه ، وربما إصلاحه إذا كنت ترغب في مثل هذا الروبوت.

ماذا يحدث في البوت؟


أولاً ، أقوم بتهيئة جميع المكتبات التي سيستخدمها البوت.

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

بعد ذلك ، أقوم بإنشاء وظيفة سؤال:

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",     

وأقوم بإنشاء أول وظيفة تستجيب لأمر "/ start" في البرقية:

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

ثم نعمل أيضًا مع البرقيات ، والآن ننشئ وظيفة ستتلقى رسالة من المستخدم:

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

وفيه نقوم بإنشاء وظيفتين ، هذه هي msg و 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"))

ثم نتلقى رسالة من مستخدم الروبوت ونتحقق مما يريد:

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

هذا كل شيء ، هكذا تعمل.

كيفية استخدام مثل هذا الروبوت؟


قد يبدو الأمر معقدًا ، ولكن إذا فعلت كل شيء وفقًا للتعليمات ، فلا شيء معقد.

تعليمات


ابحث في برقية البوت المسمىBotFather ،
يبدو مثل هذا: صورة
بعد ذلك ، اكتب له أمرًا لإنشاء روبوت جديد ، يبدو الأمر على النحو

صورة
التالي : / newbot بعد ذلك ، اتصل بروبوتك كما تريد ، ولكن عليك تسميته بشكل فردي ، أي بحيث لا يوجد مثل هذا الروبوت في العالم ، على سبيل المثال: BotStepana3215.



بعد ذلك ، ستحتاج إلى التوصل إلى اسم برنامج التتبُّع الخاص بك ، وتأكد من إضافة البادئة ، على سبيل المثال ، سأتصل برقم مثل هذا: BotStepana3215_bot:



وBotFather سيعطيك رمز الروبوت الخاص بك ، يبدو كالتالي:



لا يمكن إعطاء هذا الرمز لأي شخص آخر ، لأنه يمكن تغيير البوت.

ويبقى لنسخ الرمز المميز ، وحفظه في مكان ما في ملف نصي (وهو أكثر ملاءمة للنسخ من هناك) ، وتشغيل البرنامج وإدخال الرمز المميز هناك.

والآن يمكنك الكتابة إلى برنامج الروبوت الخاص بك الذي أنشأته للتو (يمكن العثور عليه في البحث عن البرقيات بالاسم الأخير ، في حالتي @ BotStepana3215_bot) ، وكل شيء أدرجته من وظيفته سيعمل من أجلك.

من أين تحصل على مثل هذا الروبوت؟


هنا لدي. exe و. py على github

ولكن .exe هو فقط لنظام التشغيل Windows 10.

استمتع بالبرنامج وكتابة المراجعات.

حظا طيبا وفقك الله

All Articles