Загрузка...

PC_Control - Программа для управлением ПК через Telegram бота

Тема в разделе Python создана пользователем FLUXdev 25 апр 2024. (поднята 11 июл 2024) 726 просмотров

  1. FLUXdev
    FLUXdev Автор темы 25 апр 2024 6 9 апр 2022
    Здарово братки!
    Я написал программу Для Дистанционного
    управления ПК с помощью
    Telegram
    :tg: Ботика
    (Программа моя, писал лично на Питоне)
    Установка и запуск

    1. Склонируйте репозиторий на свой компьютер.​
    2. Запустите Start.bat и дождитесь установки необходимых библиотек (если их нет).​
    3. Создайте телеграм бота, перейдя в Telegram и начав диалог с BotFather.​
    4. Создайте нового бота, следуя инструкциям BotFather. 5.После создания бота, скопируйте полученный токен. Запустите start.bat и введите полученный токен, когда программа запросит его. В боте, который вы создали в Telegram, отправьте команду /start, чтобы начать использование скрипта.​
    1. Управление питанием ( Питание)

    • Перезагрузка ( Перезагрузка): Позволяет перезагрузить компьютер.​
    • Выключение ( Выключение): Позволяет выключить компьютер.​
    • Спящий режим ( Спящий режим): Переводит компьютер в спящий режим.​

    2. Управление системой ( Система)

    • Блокировка экрана ( Блокировка экрана): Блокирует экран компьютера.​
    • Информация о ПК (ℹ О ПК): Отображает информацию о текущей операционной системе, использовании процессора и памяти.​
    • Запустить процесс ( Запустить процесс): Позволяет запустить процесс по его имени.​
    • Очистить корзину ( Очистить корзину): Очищает корзину системы.​

    3. Управление устройствами ( Девайсы)

    • Список подключенных устройств ( Список подключенных устройств): Отображает список подключенных устройств.​
    • Диспетчер устройств ( Диспетчер устройств): Открывает диспетчер устройств.​

    4. Дополнительные функции ( Прочее)

    • Скриншот экрана ( Скриншот экрана): Создает и отправляет скриншот экрана.​
    • Сообщение на экран ( Сообщение на экран): Отображает сообщение на экране компьютера.​
    • Запись микрофона ( Запись микрофона): Записывает звук с микрофона в течение 5 секунд.​
    • Открыть ссылку в браузере ( Открыть ссылку в браузере): Открывает указанную
      ссылку в браузере.​
    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()

    Python
    TOKEN = 'ВАШ ТОКЕН'
    остальные файлы не имеют особого значения, их можно не скачивать
    Кароче это SFX архив, вот VirusTotal каждого из файлов




    Eсли разархивить всё это дело, будут нужные вам файлы
    Скачать Программу можно будет на моём Гитхабе

    Я бы лично таким как гость не доверял

     
    25 апр 2024 Изменено
  2. quvap
    quvap 25 апр 2024 93 16 дек 2021
    ***** вт предоставь(именно ссылки)
     
    1. quvap
      FLUXdev, не мне,в теме именно отредачь под спойлером.
    2. FLUXdev Автор темы
      quvap, кликни на эти, там ссылки :clown:
  3. Киана
    как ты с этим ехе файлом надоел мне.
    загрузи его в формате Py, выдай в описании md5 хеш готового exe файла чтобы сравнивать.

    я не буду качать твой SFX архив и распаковывать. всякое дерьмо я видел с этими распаковщиками и крипторами.
     
    1. Посмотреть предыдущие комментарии (2)
    2. FLUXdev Автор темы
      N0th1ngExtra, его можно распаковать и чекнуть все файлы лично
    3. FLUXdev Автор темы
    4. MALWARE
      Киана, так там же приложен исходный код
  4. mentaldora
    mentaldora 25 апр 2024 творчество сильнее выгоды 10 349 9 дек 2020
    Да никому не нужно это, это же мусор ебаный
     
    1. Посмотреть предыдущие комментарии (1)
    2. FLUXdev Автор темы
      mentaldora, ну так и иди нахуй, хули ты сюда то заходишь :clown: клоун
    3. mentaldora
      FLUXdev, выразить свое мнение еще вопросы?
    4. FLUXdev Автор темы
  5. utilitProger
    ахахахахаха, жалко что никто на это не поведется...
     
    1. Посмотреть предыдущие комментарии (2)
    2. FLUXdev Автор темы
      utilitProger, Чеееел, я них*я не компилил, тут sfx архив и никто не будет его компилировать...
    3. utilitProger
      FLUXdev, походу ты действительно не вдупляешь
    4. FLUXdev Автор темы
      utilitProger, ну давай, расскажи, на что юзер должен повестись?
  6. dead_anarchist
    кто ты, воин?
     
    1. FLUXdev Автор темы
    2. dead_anarchist
      FLUXdev, чем я тебе не угодил?
  7. ivannmm
    не работает написал токен типо все готово а в бое ничо нету
     
Загрузка...
Top