Здарово братки! Я написал программу Для Дистанционного управления ПК с помощью Telegram Ботика (Программа моя, писал лично на Питоне) Начинаем Установка и запуск Склонируйте репозиторий на свой компьютер. Запустите Start.bat и дождитесь установки необходимых библиотек (если их нет). Создайте телеграм бота, перейдя в Telegram и начав диалог с BotFather. Создайте нового бота, следуя инструкциям BotFather. 5.После создания бота, скопируйте полученный токен. Запустите start.bat и введите полученный токен, когда программа запросит его. В боте, который вы создали в Telegram, отправьте команду /start, чтобы начать использование скрипта. Функции бота 1. Управление питанием ( Питание) Перезагрузка ( Перезагрузка): Позволяет перезагрузить компьютер. Выключение ( Выключение): Позволяет выключить компьютер. Спящий режим ( Спящий режим): Переводит компьютер в спящий режим. 2. Управление системой ( Система) Блокировка экрана ( Блокировка экрана): Блокирует экран компьютера. Информация о ПК (ℹ О ПК): Отображает информацию о текущей операционной системе, использовании процессора и памяти. Запустить процесс ( Запустить процесс): Позволяет запустить процесс по его имени. Очистить корзину ( Очистить корзину): Очищает корзину системы. 3. Управление устройствами ( Девайсы) Список подключенных устройств ( Список подключенных устройств): Отображает список подключенных устройств. Диспетчер устройств ( Диспетчер устройств): Открывает диспетчер устройств. 4. Дополнительные функции ( Прочее) Скриншот экрана ( Скриншот экрана): Создает и отправляет скриншот экрана. Сообщение на экран ( Сообщение на экран): Отображает сообщение на экране компьютера. Запись микрофона ( Запись микрофона): Записывает звук с микрофона в течение 5 секунд. Открыть ссылку в браузере ( Открыть ссылку в браузере): Открывает указанную ссылку в браузере. Исходный код mn.py import telebot import os import platform import psutil import pyaudio import wave import webbrowser import pyttsx3 import pyautogui import config from ctypes import cast, POINTER from comtypes import CLSCTX_ALL from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume # Токен вашего бота TOKEN = config.TOKEN bot = telebot.TeleBot(TOKEN) print('Бот успешно запущен!') # Функция для создания основного меню с категориями def create_main_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Питание', callback_data='power_menu'), telebot.types.InlineKeyboardButton(' Система', callback_data='system_menu') ) keyboard.row( telebot.types.InlineKeyboardButton(' Девайсы', callback_data='devices_menu'), telebot.types.InlineKeyboardButton(' Прочее', callback_data='other_menu') ) return keyboard # Функция для создания клавиатуры второго меню "Питание" def create_power_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Перезагрузка', callback_data='reboot'), telebot.types.InlineKeyboardButton(' Выключение', callback_data='power_off') ) keyboard.row( telebot.types.InlineKeyboardButton(' Спящий режим', callback_data='sleep_mode'), telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Функция для создания клавиатуры второго меню "Система" def create_system_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Блокировка экрана', callback_data='lock_screen'), telebot.types.InlineKeyboardButton('ℹ О ПК', callback_data='system_info') ) keyboard.row( telebot.types.InlineKeyboardButton(' Запустить процесс', callback_data='run_process'), telebot.types.InlineKeyboardButton(' Очистить корзину', callback_data='clear_recycle_bin') ) keyboard.row( telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Функция для создания клавиатуры второго меню "Девайсы" def create_devices_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Список подключенных устройств', callback_data='list_devices'), telebot.types.InlineKeyboardButton(' Диспетчер устройств', callback_data='device_manager') ) keyboard.row( telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Функция для создания клавиатуры второго меню "Прочее" def create_other_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Скриншот экрана', callback_data='take_screenshot'), telebot.types.InlineKeyboardButton(' Сообщение на экран', callback_data='show_message_on_screen') ) keyboard.row( telebot.types.InlineKeyboardButton(' Запись микрофона', callback_data='record_microphone'), telebot.types.InlineKeyboardButton(' Открыть ссылку в браузере', callback_data='open_web_link') ) keyboard.row( telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Обработчик команды /start или /help @bot.message_handler(commands=['start', 'help']) def send_welcome(message): welcome_message = ( "Привет! Я бот с различными функциями управления компьютером.\n" "Выберите одну из доступных категорий, нажав на соответствующую кнопку." ) bot.send_message(message.chat.id, welcome_message, reply_markup=create_main_menu_keyboard()) # Обработчик нажатий на inline кнопки @bot.callback_query_handler(func=lambda call: True) def callback_handler(call): chat_id = call.message.chat.id if call.data == 'power_menu': bot.send_message(chat_id, "Выберите действие питания:", reply_markup=create_power_menu_keyboard()) elif call.data == 'system_menu': bot.send_message(chat_id, "Выберите действие системы:", reply_markup=create_system_menu_keyboard()) elif call.data == 'devices_menu': bot.send_message(chat_id, "Выберите действие с устройствами:", reply_markup=create_devices_menu_keyboard()) elif call.data == 'other_menu': bot.send_message(chat_id, "Выберите другие действия:", reply_markup=create_other_menu_keyboard()) elif call.data == 'back_to_main': bot.edit_message_text(chat_id=chat_id, message_id=call.message.message_id, text="Выберите одну из доступных категорий:", reply_markup=create_main_menu_keyboard()) elif call.data == 'lock_screen': lock_screen(chat_id) elif call.data == 'system_info': show_system_info(chat_id) elif call.data == 'run_process': bot.send_message(chat_id, "Введите имя процесса для запуска:") bot.register_next_step_handler(call.message, run_process) elif call.data == 'clear_recycle_bin': clear_recycle_bin(chat_id) elif call.data == 'reboot': reboot(chat_id) elif call.data == 'power_off': power_off(chat_id) elif call.data == 'sleep_mode': sleep_mode(chat_id) elif call.data == 'list_devices': list_devices(chat_id) elif call.data == 'device_manager': open_device_manager(chat_id) elif call.data == 'take_screenshot': take_screenshot(chat_id) elif call.data == 'show_message_on_screen': bot.send_message(chat_id, "Введите сообщение для отображения на экране:") bot.register_next_step_handler(call.message, show_message_on_screen) elif call.data == 'record_microphone': bot.send_message(chat_id, "Начинаю запись микрофона. Говорите что-нибудь...") record_microphone(chat_id) elif call.data == 'open_web_link': bot.send_message(chat_id, "Введите ссылку для открытия в браузере:") bot.register_next_step_handler(call.message, open_web_link) else: bot.send_message(chat_id, "Функция еще не реализована.") # Функция для блокировки экрана def lock_screen(chat_id): try: if platform.system() == 'Windows': os.system("rundll32.exe user32.dll,LockWorkStation") bot.send_message(chat_id, "Компьютер заблокирован ") else: bot.send_message(chat_id, "Блокировка экрана не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для вывода информации о системе def show_system_info(chat_id): try: system_info = ( f"Операционная система: {platform.system()} {platform.release()}\n" f"Использование CPU: {psutil.cpu_percent()}%\n" f"Использование RAM: {psutil.virtual_memory().percent}%" ) bot.send_message(chat_id, system_info) except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для перезагрузки компьютера def reboot(chat_id): try: if platform.system() == 'Windows': os.system("shutdown /r /t 1") else: bot.send_message(chat_id, "Перезагрузка компьютера не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для выключения компьютера def power_off(chat_id): try: if platform.system() == 'Windows': os.system("shutdown /s /t 1") else: bot.send_message(chat_id, "Выключение компьютера не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для перевода компьютера в спящий режим def sleep_mode(chat_id): try: if platform.system() == 'Windows': os.system("rundll32.exe powrprof.dll,SetSuspendState 0,1,0") else: bot.send_message(chat_id, "Спящий режим не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для отображения списка подключенных устройств def list_devices(chat_id): try: devices = [device.device_name() for device in AudioUtilities.GetSpeakers()] devices_str = "\n".join(devices) bot.send_message(chat_id, f"Список подключенных устройств:\n{devices_str}") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для открытия диспетчера устройств def open_device_manager(chat_id): try: if platform.system() == 'Windows': os.system("devmgmt.msc") else: bot.send_message(chat_id, "Открытие диспетчера устройств не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для снятия скриншота экрана def take_screenshot(chat_id): try: screenshot_path = 'screenshot.png' pyautogui.screenshot(screenshot_path) with open(screenshot_path, 'rb') as photo: bot.send_photo(chat_id, photo) os.remove(screenshot_path) except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для отображения сообщения на экране def show_message_on_screen(message): try: message_text = message.text pyautogui.alert(message_text) except Exception as e: bot.send_message(message.chat.id, f"Ошибка: {str(e)}") # Функция для записи звука с микрофона def record_microphone(chat_id): try: CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "output.wav" audio = pyaudio.PyAudio() stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) frames = [] for _ in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) stream.stop_stream() stream.close() audio.terminate() wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) # Ошибка была здесь, добавляем правильный вызов метода wf.setsampwidth(audio.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() bot.send_audio(chat_id, open(WAVE_OUTPUT_FILENAME, 'rb')) os.remove(WAVE_OUTPUT_FILENAME) except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для открытия ссылки в браузере def open_web_link(message): link = message.text webbrowser.open(link) # Функция для запуска процесса (аналог Win+R) def run_process(message): try: process_name = message.text os.system(f'explorer shell:::{process_name}') except Exception as e: bot.send_message(message.chat.id, f"Ошибка: {str(e)}") # Запуск бота bot.polling() Python import telebot import os import platform import psutil import pyaudio import wave import webbrowser import pyttsx3 import pyautogui import config from ctypes import cast, POINTER from comtypes import CLSCTX_ALL from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume # Токен вашего бота TOKEN = config.TOKEN bot = telebot.TeleBot(TOKEN) print('Бот успешно запущен!') # Функция для создания основного меню с категориями def create_main_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Питание', callback_data='power_menu'), telebot.types.InlineKeyboardButton(' Система', callback_data='system_menu') ) keyboard.row( telebot.types.InlineKeyboardButton(' Девайсы', callback_data='devices_menu'), telebot.types.InlineKeyboardButton(' Прочее', callback_data='other_menu') ) return keyboard # Функция для создания клавиатуры второго меню "Питание" def create_power_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Перезагрузка', callback_data='reboot'), telebot.types.InlineKeyboardButton(' Выключение', callback_data='power_off') ) keyboard.row( telebot.types.InlineKeyboardButton(' Спящий режим', callback_data='sleep_mode'), telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Функция для создания клавиатуры второго меню "Система" def create_system_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Блокировка экрана', callback_data='lock_screen'), telebot.types.InlineKeyboardButton('ℹ О ПК', callback_data='system_info') ) keyboard.row( telebot.types.InlineKeyboardButton(' Запустить процесс', callback_data='run_process'), telebot.types.InlineKeyboardButton(' Очистить корзину', callback_data='clear_recycle_bin') ) keyboard.row( telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Функция для создания клавиатуры второго меню "Девайсы" def create_devices_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Список подключенных устройств', callback_data='list_devices'), telebot.types.InlineKeyboardButton(' Диспетчер устройств', callback_data='device_manager') ) keyboard.row( telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Функция для создания клавиатуры второго меню "Прочее" def create_other_menu_keyboard(): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton(' Скриншот экрана', callback_data='take_screenshot'), telebot.types.InlineKeyboardButton(' Сообщение на экран', callback_data='show_message_on_screen') ) keyboard.row( telebot.types.InlineKeyboardButton(' Запись микрофона', callback_data='record_microphone'), telebot.types.InlineKeyboardButton(' Открыть ссылку в браузере', callback_data='open_web_link') ) keyboard.row( telebot.types.InlineKeyboardButton('◀ Назад', callback_data='back_to_main') ) return keyboard # Обработчик команды /start или /help @bot.message_handler(commands=['start', 'help']) def send_welcome(message): welcome_message = ( "Привет! Я бот с различными функциями управления компьютером.\n" "Выберите одну из доступных категорий, нажав на соответствующую кнопку." ) bot.send_message(message.chat.id, welcome_message, reply_markup=create_main_menu_keyboard()) # Обработчик нажатий на inline кнопки @bot.callback_query_handler(func=lambda call: True) def callback_handler(call): chat_id = call.message.chat.id if call.data == 'power_menu': bot.send_message(chat_id, "Выберите действие питания:", reply_markup=create_power_menu_keyboard()) elif call.data == 'system_menu': bot.send_message(chat_id, "Выберите действие системы:", reply_markup=create_system_menu_keyboard()) elif call.data == 'devices_menu': bot.send_message(chat_id, "Выберите действие с устройствами:", reply_markup=create_devices_menu_keyboard()) elif call.data == 'other_menu': bot.send_message(chat_id, "Выберите другие действия:", reply_markup=create_other_menu_keyboard()) elif call.data == 'back_to_main': bot.edit_message_text(chat_id=chat_id, message_id=call.message.message_id, text="Выберите одну из доступных категорий:", reply_markup=create_main_menu_keyboard()) elif call.data == 'lock_screen': lock_screen(chat_id) elif call.data == 'system_info': show_system_info(chat_id) elif call.data == 'run_process': bot.send_message(chat_id, "Введите имя процесса для запуска:") bot.register_next_step_handler(call.message, run_process) elif call.data == 'clear_recycle_bin': clear_recycle_bin(chat_id) elif call.data == 'reboot': reboot(chat_id) elif call.data == 'power_off': power_off(chat_id) elif call.data == 'sleep_mode': sleep_mode(chat_id) elif call.data == 'list_devices': list_devices(chat_id) elif call.data == 'device_manager': open_device_manager(chat_id) elif call.data == 'take_screenshot': take_screenshot(chat_id) elif call.data == 'show_message_on_screen': bot.send_message(chat_id, "Введите сообщение для отображения на экране:") bot.register_next_step_handler(call.message, show_message_on_screen) elif call.data == 'record_microphone': bot.send_message(chat_id, "Начинаю запись микрофона. Говорите что-нибудь...") record_microphone(chat_id) elif call.data == 'open_web_link': bot.send_message(chat_id, "Введите ссылку для открытия в браузере:") bot.register_next_step_handler(call.message, open_web_link) else: bot.send_message(chat_id, "Функция еще не реализована.") # Функция для блокировки экрана def lock_screen(chat_id): try: if platform.system() == 'Windows': os.system("rundll32.exe user32.dll,LockWorkStation") bot.send_message(chat_id, "Компьютер заблокирован ") else: bot.send_message(chat_id, "Блокировка экрана не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для вывода информации о системе def show_system_info(chat_id): try: system_info = ( f"Операционная система: {platform.system()} {platform.release()}\n" f"Использование CPU: {psutil.cpu_percent()}%\n" f"Использование RAM: {psutil.virtual_memory().percent}%" ) bot.send_message(chat_id, system_info) except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для перезагрузки компьютера def reboot(chat_id): try: if platform.system() == 'Windows': os.system("shutdown /r /t 1") else: bot.send_message(chat_id, "Перезагрузка компьютера не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для выключения компьютера def power_off(chat_id): try: if platform.system() == 'Windows': os.system("shutdown /s /t 1") else: bot.send_message(chat_id, "Выключение компьютера не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для перевода компьютера в спящий режим def sleep_mode(chat_id): try: if platform.system() == 'Windows': os.system("rundll32.exe powrprof.dll,SetSuspendState 0,1,0") else: bot.send_message(chat_id, "Спящий режим не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для отображения списка подключенных устройств def list_devices(chat_id): try: devices = [device.device_name() for device in AudioUtilities.GetSpeakers()] devices_str = "\n".join(devices) bot.send_message(chat_id, f"Список подключенных устройств:\n{devices_str}") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для открытия диспетчера устройств def open_device_manager(chat_id): try: if platform.system() == 'Windows': os.system("devmgmt.msc") else: bot.send_message(chat_id, "Открытие диспетчера устройств не поддерживается на этой операционной системе.") except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для снятия скриншота экрана def take_screenshot(chat_id): try: screenshot_path = 'screenshot.png' pyautogui.screenshot(screenshot_path) with open(screenshot_path, 'rb') as photo: bot.send_photo(chat_id, photo) os.remove(screenshot_path) except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для отображения сообщения на экране def show_message_on_screen(message): try: message_text = message.text pyautogui.alert(message_text) except Exception as e: bot.send_message(message.chat.id, f"Ошибка: {str(e)}") # Функция для записи звука с микрофона def record_microphone(chat_id): try: CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "output.wav" audio = pyaudio.PyAudio() stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) frames = [] for _ in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) stream.stop_stream() stream.close() audio.terminate() wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) # Ошибка была здесь, добавляем правильный вызов метода wf.setsampwidth(audio.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() bot.send_audio(chat_id, open(WAVE_OUTPUT_FILENAME, 'rb')) os.remove(WAVE_OUTPUT_FILENAME) except Exception as e: bot.send_message(chat_id, f"Ошибка: {str(e)}") # Функция для открытия ссылки в браузере def open_web_link(message): link = message.text webbrowser.open(link) # Функция для запуска процесса (аналог Win+R) def run_process(message): try: process_name = message.text os.system(f'explorer shell:::{process_name}') except Exception as e: bot.send_message(message.chat.id, f"Ошибка: {str(e)}") # Запуск бота bot.polling() config.py TOKEN = 'ВАШ ТОКЕН' Python TOKEN = 'ВАШ ТОКЕН' остальные файлы не имеют особого значения, их можно не скачивать VirusTotal Кароче это SFX архив, вот VirusTotal каждого из файлов mn.py app.py Eсли разархивить всё это дело, будут нужные вам файлы Скачать Программу можно будет на моём Гитхабе Я бы лично таким как guest не доверял
как ты с этим ехе файлом надоел мне. загрузи его в формате Py, выдай в описании md5 хеш готового exe файла чтобы сравнивать. я не буду качать твой SFX архив и распаковывать. всякое дерьмо я видел с этими распаковщиками и крипторами.