Guest User

Untitled

a guest
Oct 9th, 2024
556
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.67 KB | None | 0 0
  1. import telebot
  2. import pyautogui
  3. import pygetwindow as gw
  4. import os
  5.  
  6. # Ваш токен от Telegram
  7. bot_token = 'Bot_Token' # Замените на токен нужного бота
  8. bot = telebot.TeleBot(bot_token)
  9.  
  10. # Укажите ID пользователя, который может управлять ботом
  11. allowed_user_id = 123456789 # Замените на ваш реальный Telegram ID
  12.  
  13. # Функция проверки прав доступа
  14. def check_access(message):
  15. if message.from_user.id != allowed_user_id:
  16. bot.send_message(message.chat.id, "У вас нет прав для управления этим ботом.")
  17. print(f"Пользователь {message.from_user.id} пытался выполнить команду, но не имеет прав.")
  18. return False
  19. return True
  20.  
  21. # Команда для отправки скриншота
  22. @bot.message_handler(commands=['screenshot'])
  23. def send_screenshot(message):
  24. if not check_access(message):
  25. return
  26.  
  27. try:
  28. # Делаем скриншот
  29. screenshot = pyautogui.screenshot()
  30.  
  31. # Сохраняем временно скриншот
  32. screenshot_path = 'screenshot.png'
  33. screenshot.save(screenshot_path)
  34.  
  35. # Проверяем, существует ли файл перед отправкой
  36. if os.path.exists(screenshot_path):
  37. with open(screenshot_path, 'rb') as photo:
  38. bot.send_photo(message.chat.id, photo)
  39. os.remove(screenshot_path) # Удаляем файл после отправки
  40. print("Команда /screenshot выполнена: скриншот отправлен")
  41. else:
  42. bot.send_message(message.chat.id, "Не удалось создать скриншот.")
  43. print("Команда /screenshot не удалась: файл скриншота не найден")
  44. except Exception as e:
  45. bot.send_message(message.chat.id, f"Произошла ошибка: {e}")
  46. print(f"Ошибка при выполнении команды /screenshot: {e}")
  47.  
  48. # Команда для отображения всех открытых окон
  49. @bot.message_handler(commands=['list_windows'])
  50. def list_windows(message):
  51. if not check_access(message):
  52. return
  53.  
  54. windows = gw.getAllTitles() # Получаем заголовки всех окон
  55. windows = [w for w in windows if w] # Убираем пустые строки (иногда бывают скрытые окна)
  56.  
  57. if windows:
  58. response = "Открытые окна:\n"
  59. for i, window in enumerate(windows):
  60. response += f"{i+1}. {window}\n"
  61. print(f"Команда /list_windows выполнена: найдено {len(windows)} окон")
  62. else:
  63. response = "Окна не найдены."
  64. print("Команда /list_windows выполнена: окна не найдены")
  65.  
  66. bot.send_message(message.chat.id, response)
  67.  
  68. # Команда для закрытия окна по его индексу
  69. @bot.message_handler(commands=['close_window'])
  70. def close_window(message):
  71. if not check_access(message):
  72. return
  73.  
  74. try:
  75. # Парсим команду, ожидаем индекс окна
  76. index = int(message.text.split()[1]) - 1
  77.  
  78. # Получаем список окон
  79. windows = gw.getAllTitles()
  80. windows = [w for w in windows if w]
  81.  
  82. # Закрываем выбранное окно
  83. if 0 <= index < len(windows):
  84. window = gw.getWindowsWithTitle(windows[index])[0]
  85. window.close()
  86. bot.send_message(message.chat.id, f"Окно '{windows[index]}' закрыто.")
  87. print(f"Команда /close_window выполнена: окно '{windows[index]}' закрыто")
  88. else:
  89. bot.send_message(message.chat.id, "Неверный индекс окна.")
  90. print("Команда /close_window: неверный индекс окна")
  91. except (IndexError, ValueError):
  92. bot.send_message(message.chat.id, "Пожалуйста, укажите корректный индекс окна. Пример: /close_window 1")
  93. print("Ошибка: некорректный индекс для команды /close_window")
  94. except Exception as e:
  95. bot.send_message(message.chat.id, f"Произошла ошибка: {e}")
  96. print(f"Ошибка при выполнении команды /close_window: {e}")
  97.  
  98. # Запускаем бота
  99. bot.polling(none_stop=True)
Advertisement
Add Comment
Please, Sign In to add comment