Telegram-бот для удалённого управления компьютером. Реализация на C++ использует Telegram Bot API через libcurl и управляется кнопками клавиатуры Telegram.
- Long polling через
getUpdates. - Белый список chat-id.
- Команда
/screenshotдля отправки изображения. - Открытие веб-интерфейса через кнопку Open в меню вложений Telegram.
- CMake 3.16+
- Компилятор C++17
libcurl- ImageMagick (
import) для Linux (снятие скриншотов) - Windows использует встроенный WIC (доп. пакеты не требуются)
cmake -S . -B build
cmake --build build- Создайте бота через @BotFather и получите токен.
- Экспортируйте токен как переменную окружения:
export TELEGRAM_BOT_TOKEN="<TOKEN>"- Отредактируйте
config/config.ini:
allowed_chat_ids=
screenshot.width=1280
screenshot.height=720
screenshot.compression=true
screenshot.quality=85
screenshot.format=jpg
webapp.url=https://horgonai.github.io/PCController/
debug.log_path=allowed_chat_ids — список разрешённых чатов (через запятую). Пустое значение отключает whitelist. Настройки screenshot.* управляют разрешением и форматом снимка.
webapp.url добавляет кнопку Open в меню вложений Telegram и должен указывать на ваш веб-интерфейс.
debug.log_path включает логирование входящих обновлений и Web App данных (указывать путь к файлу, оставьте пустым для отключения).
./build/pccontrollerМожно указать путь к конфигу аргументом:
./build/pccontroller путь/к/config.ini- Откройте чат с ботом.
- Используйте
/screenshotдля получения изображения. - Кнопка Open откроет веб-интерфейс, если указан
webapp.url.
Файлы index.html, app.js и styles.css лежат в корне репозитория и используются GitHub Pages вместо README.md.
Страница содержит кнопку отправки команды скриншота через Telegram Web App и форму настроек (сжатие, разрешение, качество).
- Не добавляйте опасные команды в
config.ini. - Ограничивайте доступ только своим chat-id.
- Не храните токен в коде; используйте переменные окружения.