# QoSManager Приложение для управления QoS-политиками Windows на C# WPF с .NET 8. Приложение написано специально для функции "маршрутизация по DSCP" в приложении Zeroblock для роутера RouteRich. Возможны баги и недоработки. В редакторе локальной групповой политики в Windows внесённые программой изменения не отображаются. **⚠️ Важно:** Windows Home версии не поддерживают Group Policy и QoS, поэтому приложение не будет работать на этих системах. ## Возможности - ✅ Создание QoS-политик для процессов - ✅ Удаление существующих политик - ✅ Просмотр списка всех политик с нумерацией - ✅ Приоритизация трафика (DSCP 1-63) - ✅ Автоматический конвертер DSCP ↔ TOS значений - ✅ Современный темный интерфейс с разделителями - ✅ Автоматическое масштабирование под разрешение экрана - ✅ Логирование действий (отключаемое) - ✅ Защита от случайного редактирования полей ## Требования - Windows 10/11 Pro/Enterprise/Education (Home версии не поддерживаются) - .NET 8.0 Runtime (для portable версии) ## Сборка ```bash # Установка зависимостей dotnet restore # Сборка проекта dotnet build --configuration Release # Portable версия (требует .NET 8 Runtime) dotnet publish -c Release -r win-x64 --self-contained false -o Portable # Standalone версия (полностью автономная) dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true -p:DebugType=none -p:DebugSymbols=false -p:Optimize=true -p:DeleteAppSettingsOnPublish=true -o Standalone ``` ## Структура проекта ``` QoSM/ ├── QoSManager.csproj # Файл проекта ├── App.xaml # Приложение ├── app.manifest # Манифест (админ. права) ├── Models/ │ ├── QoSPolicy.cs # Модель данных │ ├── DscpTosConverter.cs # Конвертер DSCP ↔ TOS │ └── ProcessInfo.cs # Информация о процессе ├── Services/ │ ├── QoSService.cs # Сервис QoS │ └── LoggingService.cs # Сервис логирования ├── Views/ │ ├── MainWindow.xaml # Главное окно │ ├── MainWindow.xaml.cs │ ├── PolicyEditWindow.xaml # Окно редактирования │ ├── PolicyEditWindow.xaml.cs │ ├── ProcessSelectionWindow.xaml # Окно выбора процессов │ ├── ProcessSelectionWindow.xaml.cs │ ├── CustomMessageBox.xaml # Кастомное сообщение │ └── CustomMessageBox.xaml.cs ├── Properties/ │ ├── Settings.settings # Настройки приложения │ └── Settings.Designer.cs ├── Resources/ │ └── icon.ico # Иконка приложения └── Styles/ └── DarkTheme.xaml # Темная тема ``` ## Особенности ### 🎨 Современный UI - Темная тема по умолчанию - Адаптивный дизайн с разделителями - Поддержка DPI - Нумерация политик в таблице ### 🔒 Безопасность - Валидация ввода DSCP (1-63) - Защита от случайного редактирования полей - Обработка ошибок ### 📊 Логирование - Логирование действий (отключаемое через UI) - Сохранение рядом с exe файлом - Запоминание состояния галочки логов ### 🔄 Конвертер DSCP ↔ TOS - Автоматический конвертер значений - Отображение TOS Value в реальном времени - Поддержка стандартных и кастомных значений ### 🖥️ Масштабирование - Автоматическое определение разрешения - Адаптивный размер окна ## Использование 1. Запустите приложение 2. Нажмите "Добавить политику" для создания новой политики 3. Выберите процесс или путь к EXE файлу 4. Установите DSCP значение (1-63) 5. Проверьте TOS Value в конвертере 6. Нажмите "Создать" Для удаления политики: 1. Выберите политику в списке 2. Нажмите "Удалить политику" 3. Подтвердите удаление ## Технологии - **C# 12** - основной язык - **WPF** - UI фреймворк - **.NET 8.0** - платформа - **PowerShell** - доступ к QoS API - **Microsoft.Extensions.Logging** - логирование ## Распространение ### 📦 Standalone версия (рекомендуется) - Полностью автономная программа - Работает на любой Windows 10/11 - Размер: ~70 МБ (один exe файл) - Просто рпаспакуйте QoSManager.exe и запускайте ### ⚡ Portable версия - Требует установленный .NET 8 Runtime - Размер: ~500 КБ (exe файл)