main
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 версии)
Сборка
# Установка зависимостей
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 в реальном времени
- Поддержка стандартных и кастомных значений
🖥️ Масштабирование
- Автоматическое определение разрешения
- Адаптивный размер окна
Использование
- Запустите приложение
- Нажмите "Добавить политику" для создания новой политики
- Выберите процесс или путь к EXE файлу
- Установите DSCP значение (1-63)
- Проверьте TOS Value в конвертере
- Нажмите "Создать"
Для удаления политики:
- Выберите политику в списке
- Нажмите "Удалить политику"
- Подтвердите удаление
Технологии
- 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 файл)