diff --git a/README.md b/README.md index c317a9d..094f3aa 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,134 @@ # QoSManager -Приложение для управления QoS-политиками Windows на C# WPF с .NET 8. \ No newline at end of file +Приложение для управления 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 +- Размер: ~72 МБ (один exe файл) +- Просто скопируйте QoSManager.exe и запускайте + +### ⚡ Portable версия +- Требует установленный .NET 8 Runtime +- Размер: ~500 КБ (exe файл) \ No newline at end of file