windowcapture
исходный код / APPS_AND_LAUNCHER.md

APPS_AND_LAUNCHER.md

46 строк · 6,025 байт · модуль Docs
 1# MediaCore — единое приложение + модули (опц. лаунчер)
 2
 3С версии **v3 (ребренд WindowCapture → MediaCore)** это **единое приложение с одной иконкой в трее**: запуск без аргументов = `MediaCore.exe`, по **правому клику** в трее включаются/выключаются модули (**Скриншот, Автозамена, Буфер, Жесты**) и открываются окна (**Саундпад, Поиск**) — все хуки живут в одном процессе, поведение каждого модуля гейтится вживую (`Controller.SetModuleEnabled`, флаги `Settings.Module*`). Никаких `--флагов` для обычного использования.
 4
 5Старые per-режим флаги (`--screenshot`, `--textassist`, `--clipboard`, …) и **радиальный лаунчер** (`--launcher`, `Ctrl+Alt+Space`) **сохранены как опциональные** (power-user / автозагрузка отдельным процессом), но больше не нужны в повседневной работе.
 6
 7## Лаунчер (хаб)
 8- Запуск без аргументов → **Лаунчер**: иконка в трее + глобальная клавиша **`Ctrl+Alt+Space`**.
 9- По хоткею (или левый клик по иконке трея) открывается **круговое меню** поверх затемнённого «замороженного» рабочего стола.
10- Навести курсор на сектор и **кликнуть** (или нажать **1–5**) — запустится приложение. **Esc / правый клик / центр** — отмена.
11- Секторы: **Скриншот, Автозамена, Буфер, Саундпад, Поиск**.
12
13## Приложения (режимы)
14| Приложение | Запуск | Что делает | Хуки/ресурсы |
15|---|---|---|---|
16| **Скриншот** | `MediaCore.exe --screenshot` | Захват `Alt+Win` → редактор аннотаций → Word/AI-экспорт | только клав-хук (активация) |
17| **Автозамена** | `--textassist` | T9/орфография, смена раскладки, авто-заглавная/пунктуация, `Ctrl+Shift+Space` | клав+мышь хук, грузит модели `Data/` |
18| **Буфер** | `--clipboard` | История буфера по удержанию `Ctrl+V` | клав-хук + слушатель буфера |
19| **Саундпад** | `--soundpad` | Звуковая панель (APO) | окно + трей |
20| **Поиск** | `--search` | Поиск файлов по MFT | окно + трей |
21| Просмотр | `MediaCore.exe <файл>` | Открыть картинку/видео/аудио в редакторе/плеере | — |
22
23Каждое приложение — **single-instance**: повторный запуск того же режима не плодит дубль, а «всплывает» уже запущенное (окно показывается; для лаунчера — открывается меню).
24
25## Автозапуск (по желанию)
26Чтобы, например, автозамена и буфер работали всегда — добавьте в автозагрузку ярлыки:
27```
28MediaCore.exe --textassist
29MediaCore.exe --clipboard
30MediaCore.exe --launcher
31```
32(папка автозагрузки: `shell:startup`). Лаунчер же удобно держать всегда — он лёгкий (без моделей/хуков, только хоткей).
33
34## Архитектура (как развязано)
35- `Controller(ControllerMode)` — флаги `Capture | TextAssist | Clipboard | Gestures`; каждый процесс ставит только свои хуки и обрабатывает только свои блоки. Дефолтный `Controller()` = `All` (полный режим без изменений — обратная совместимость).
36- `Program.Main` — роутинг по `--флагу`, single-instance на режим + «show-event» для всплытия.
37- `LauncherApp` (трей + `RegisterHotKey`) → `LauncherForm` (pie-меню) → `AppModes.Launch(mode)`.
38- `FormHostApp` — хост для оконных приложений (Саундпад/Поиск): трей + повторный показ.
39
40## Что ещё не проверено (нужна GUI-сессия)
41- Визуальный рендеринг кругового меню и срабатывание `Ctrl+Alt+Space` «вживую» (собирается и стартует без краша; пиксельную проверку не делал — нет доступа к GUI).
42- Поведение каждого приложения после разделения (захват, T9, буфер, саундпад, поиск) — нужен прогон руками.
43- Физический split на отдельные `.exe` + общий `WC.Core.dll` (для веса) — по `MODULARIZATION_PLAN.md`.
44
45## OCR — «забрать текст» (Ctrl+T)
46В редакторе **`Ctrl+T`** распознаёт текст на текущем изображении и копирует в буфер. Локально, офлайн, бесплатно (встроенный Windows OCR, языки RU + EN уже установлены). Реализация: net8-хелпер `Ocr/WC.Ocr.csproj` (`Windows.Media.Ocr`) собирается в `bin/Ocr/WC.Ocr.exe`; .NET4-приложение вызывает его через `Helpers/OcrClient.cs`. Сборка хелпера — автоматически в `build.ps1` (нужен .NET 8 SDK). Закрывает разрыв №1 из `FEATURE_RESEARCH.md` (OCR grab-text).