Skip to content

Releases: Desai0/Task-Manager-Rebuild

Task Manager Rebuild v1.0.0

30 Apr 04:05

Choose a tag to compare

Программа вышла в релиз!

Добавлены графики загрузки системы, рефакторинг расчета CPU и улучшения UI

Цель:

Это обновление добавляет визуализацию использования системных ресурсов (CPU и RAM) в реальном времени и исправляет неточности в ранее реализованном расчете CPU и RAM для отдельных процессов. Цель — предоставить пользователям как детальный список процессов, так и обобщенное представление о производительности системы.

Ключевые изменения:

  • Бэкенд (Taskm.cpp, Taskm.h):

    • Рефакторинг расчета CPU для процессов: Полностью переработана логика расчета использования CPU. Теперь корректно используются GetProcessTimes, отслеживаются разницы во времени между обновлениями (systemTimeDelta, processTimeDelta), и результат нормализуется относительно количества процессоров системы для предоставления точных процентов загрузки CPU, сравнимых со стандартным Диспетчером задач Windows. Удален ненадежный подход, основанный на Sleep().
    • Управление состоянием: Реализован std::map (processMap) для сохранения информации о времени процессов между вызовами update(), что критически важно для корректного расчета дельт.
    • Обработка ошибок PDH: Устранены проблемы с локализацией счетчиков PDH (ошибка c0000bb8) путем перехода с PdhAddCounterW на PdhAddEnglishCounterA для общей загрузки CPU. Добавлены проверки успешности выполнения функций PDH.
    • Линковка библиотек: Обеспечена линковка с pdh.lib для устранения ошибок LNK2001.
  • Фронтенд - Вкладка "Загрузка системы" (renderer.js, charts.js, index.html):

    • Добавлены графики загрузки системы: Добавлены два линейных графика реального времени с использованием Chart.js для отображения истории загрузки CPU и RAM (в процентах) на вкладке "Загрузка системы".
    • Модуль графиков (charts.js): Вся логика Chart.js (инициализация, обновление данных, стилизация, состояние) вынесена в отдельный, инкапсулированный модуль charts.js для улучшения структуры кода и разделения ответственности с renderer.js.
    • Стилизация и анимация графиков:
      • Применены пользовательские стили к графикам: заливка фона, цвета/толщина линий, стили точек, заголовки осей, линии сетки и всплывающие подсказки.
      • Включена и настроена плавная анимация (duration, easing) для обновления графиков.
    • Функционал вкл/выкл графиков:
      • Добавлена кнопка "Вкл/Выкл графики" для управления рендерингом и фоновым обновлением графиков.
      • При отключении обновление графиков останавливается, экономя ресурсы клиентской стороны. Контейнер с графиками скрывается через CSS.
  • Фронтенд - Общее (renderer.js, main.js, preload.js):

    • Запрос данных в зависимости от вкладки: Реализована логика для переключения запросов данных (getProcesses против getSystemLoad) на основе активной вкладки, управляемая через IPC-сообщения между Renderer и Main. Данные для неактивной вкладки больше не запрашиваются периодически.
    • Состояние кнопки уменьшения RAM: Исправлено управление состоянием для визуальной кнопки "Уменьшить RAM (-20%)", гарантируя, что ее эффект сохраняется между автоматическими обновлениями данных и сбрасывается только при явном действии пользователя (например, нажатии основной кнопки "Обновить").
    • Статус соединения: Исправлена логика отображения статуса соединения с бэкендом, чтобы он точно отражал состояние TCP-соединения (connected/disconnected), а не был привязан только к получению данных.
    • IPC-коммуникация: Добавлены необходимые IPC-каналы (set-active-data-mode) и обработчики в main.js и preload.js для управления переключением режима данных.

Технические детали:

  • Использована библиотека Chart.js (рекомендуется v4.x) для построения графиков.
  • Использован Windows PDH API (PdhAddEnglishCounterA, PdhCollectQueryData и т.д.) для надежного получения общей загрузки CPU системы.
  • Использованы GetProcessTimes и расчеты временных дельт для CPU отдельных процессов.
  • Применен паттерн модуля IIFE в charts.js для инкапсуляции.

Брендбук Проекта

30 Apr 04:31
7a9a7c4

Choose a tag to compare

Брендбук Проекта: Custom Task Manager

Версия: 1.0
Дата: 30.04.2025

Task Manager Rebuild v0.5-beta

29 Apr 19:38

Choose a tag to compare

Pre-release

Обновления:

  • Все процессы теперь сгруппированы в раскрывающийся список, если они имеют отношение к одному приложению;
  • Основные приложения теперь закреплены вверху экрана, выделены жирным шрифтом и более темной подложкой с возможность закрытия всего списка процессов;
  • Системные процессы опузены вниз, чтобы не засорять список и выделены, их все так же можно завершать;
  • Налажена работа на системах без скачанных dev пакетов VS
  • Большая работа над бэкендом

Task Manager Rebuild v0.1

02 Apr 03:42

Choose a tag to compare

Pre-release

Основные возможности и функциональность:

Просмотр процессов:

  • Отображение списка текущих запущенных процессов в табличном виде.
  • Для каждого процесса выводятся: PID (Идентификатор процесса), Имя исполняемого файла, примерная Загрузка CPU (%)(WIP), используемая Память (Working Set Size, в МБ).

Управление процессами:

  • Возможность принудительно завершить выбранный процесс по его PID.

Обновление данных:

  • Кнопка "Обновить" для получения актуального списка процессов от бэкенда.

Взаимодействие:

  • Связь между фронтендом (Electron) и бэкендом (C++) осуществляется через TCP/IP сокеты (localhost:12345).
  • Обмен данными и командами происходит с использованием JSON-сообщений.
  • Реализован механизм Ping/Pong для поддержания TCP-соединения активным и предотвращения разрыва из-за бездействия.

Standalone Приложение:

  • Приложение собрано с использованием Electron Builder.
  • Фронтенд (Electron) автоматически запускает исполняемый файл бэкенда (TaskManager.exe) при своем старте.
  • Бэкенд-процесс автоматически завершается при закрытии основного окна Electron-приложения.
  • Исполняемый файл бэкенда включен в установочный пакет как дополнительный ресурс.

Интерфейс:

  • Базовый интерфейс с двумя вкладками (WIP).
  • Индикатор статуса соединения с бэкендом.