Введение
В данной статье мы рассмотрим код на языке Python, который позволяет создать бота для управления компьютером с помощью Telegram. Бот будет иметь возможность выполнять различные команды, такие как создание скриншота экрана, запуск игры, блокировка, выключение и перезагрузка компьютера.
Для создания бота мы будем использовать библиотеку telebot, которая предоставляет удобный интерфейс для работы с Telegram API. Мы также будем использовать библиотеку pyscreenshot для создания скриншотов экрана.
Устанавливаем telebot и pyscreenshot через менеджер пакетов pip
pip install pyTelegramBotAPI
pip install pyscreenshot
Структура кода
Код состоит из нескольких основных частей:
1. Импорт необходимых модулей:
import os
import telebot
import pyscreenshot
from telebot import types
2. Определение уникального идентификатора пользователя и токена бота:
uid = 'ВАШ_ИД' # Уникальный идентификатор пользователя
token = 'ВАШ_ТОКЕН' # Токен вашего бота
bot = telebot.TeleBot(token)
3. Создание клавиатуры меню:
menu_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False)
btnscreen = types.KeyboardButton('Скриншот')
btncmd = types.KeyboardButton('Выполнить команду')
btnch = types.KeyboardButton('Запустить Clicker Heroes')
btnlock = types.KeyboardButton('Заблокировать ПК')
btnshutdown = types.KeyboardButton('Выключить ПК')
btnreboot = types.KeyboardButton('Перезагрузить ПК')
menu_keyboard.row(btnscreen, btncmd)
menu_keyboard.row(btnch, btnlock)
menu_keyboard.row(btnshutdown, btnreboot)
4. Обработчик команды /start:
@bot.message_handler(commands=['start'])
def start_message(message):
if message.from_user.id == uid:
bot.send_message(uid, 'Меню', reply_markup=menu_keyboard) # Отправляем сообщение с клавиатурой меню
else:
bot.send_message(message.from_user.id, 'У вас нет доступа') # Отправляем сообщение о отсутствии доступа
5. Обработчик текстовых команд:
@bot.message_handler(content_types=["text"])
def text_messages(message):
if message.from_user.id == uid:
if message.text == 'Скриншот':
pyscreenshot.grab().save('screen.png') # Создаем скриншот экрана и сохраняем его в файл 'screen.png'
bot.send_photo(uid, open('screen.png', 'rb')) # Отправляем скриншот пользователю
os.remove('screen.png') # Удаляем файл скриншота после отправки
elif message.text == 'Выполнить команду':
bot.send_message(uid, 'Команда:') # Запрашиваем у пользователя команду
bot.register_next_step_handler(message, cmd) # Регистрируем следующий шаг обработки команды
elif message.text == 'Запустить Clicker Heroes':
os.system('start steam://rungameid/363970') # Запускаем игру Clicker Heroes через Steam
bot.send_message(uid, 'Запуск Clicker Heroes...') # Отправляем сообщение о запуске игры
elif message.text == 'Заблокировать ПК':
bot.send_message(uid, 'Выполнено') # Отправляем сообщение о выполнении команды
os.system('Rundll32.exe user32.dll,LockWorkStation') # Блокируем компьютер
elif message.text == 'Выключить ПК':
bot.send_message(uid, 'Выключение компьютера') # Отправляем сообщение о выключении компьютера
os.system('shutdown -s /t 0 /f') # Выключаем компьютер
elif message.text == 'Перезагрузить ПК':
bot.send_message(uid, 'Перезагрузка компьютера') # Отправляем сообщение о перезагрузке компьютера
os.system('shutdown -r /t 0 /f') # Перезагружаем компьютер
else:
bot.send_message(uid, 'Неизвестная команда') # Отправляем сообщение о неизвестной команде
else:
bot.send_message(message.from_user.id, 'У вас нет доступа') # Отправляем сообщение о отсутствии доступа
6. Обработчик команды:
def cmd(message):
os.system(message.text) # Выполняем команду, введенную пользователем
bot.send_message(uid, f"\"{message.text}\" - выполнено") # Отправляем сообщение о выполнении команды
bot.register_next_step_handler(message, text_messages) # Регистрируем следующий шаг обработки текстовых сообщений
7. Запуск бота:
if __name__ == '__main__':
bot.send_message(uid, 'Бот запущен', reply_markup=menu_keyboard) # Отправляем сообщение о запуске бота с клавиатурой меню
bot.polling(none_stop=True, interval=0, timeout=30) # Запускаем бота в режиме опроса сообщений
Примеры кода
Приведем примеры использования кода для выполнения различных команд:
Создание скриншота экрана:
pyscreenshot.grab().save('screen.png')
Запуск игры Clicker Heroes через Steam:
os.system('start steam://rungameid/363970')
Блокировка компьютера:
os.system('Rundll32.exe user32.dll,LockWorkStation')
Выключение компьютера:
os.system('shutdown -s /t 0 /f')
Перезагрузка компьютера:
os.system('shutdown -r /t 0 /f')
Заключение
В данной статье мы рассмотрели код на языке Python, который позволяет создать бота для управления компьютером с помощью Telegram. Бот имеет возможность выполнять различные команды, такие как создание скриншота экрана, запуск игры, блокировка, выключение и перезагрузка компьютера. Вы можете использовать этот код в своих проектах для автоматизации управления компьютером.
- pyscreenshot: https://pypi.org/project/pyscreenshot/