Этот документ хранит технические детали, которые не должны перегружать пользовательское руководство. Пользовательская инструкция находится в USER_MANUAL.md.
AiteBar - Windows desktop-утилита на .NET 10 и WPF. Приложение показывает скрываемую edge-панель, работает в фоне, использует tray-значок, глобальные hotkey, Win32 interop и локальное хранилище настроек в профиле пользователя.
- Runtime:
.NET 10 - Target:
net10.0-windows - UI: WPF
- Tray: Windows Forms
NotifyIcon - Системная интеграция: Win32 API для hotkey, mouse hook, позиционирования окон и отправки клавиатурного ввода
- Тесты: xUnit,
Microsoft.NET.Test.Sdk,coverlet.collector
Стандартный установщик ставит программу в Program Files, создаёт группу в меню Пуск и может добавить автозапуск текущего пользователя.
Автозапуск хранится в:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
AiteBar запускается как один экземпляр. Если пользователь запускает приложение повторно, второй экземпляр не стартует, а Windows показывает информационное сообщение о том, что AiteBar уже работает.
Папка данных:
%AppData%\Codebdbd\Aite Bar
| Файл или папка | Назначение |
|---|---|
settings.json |
Основные настройки приложения, панелей и пользовательских кнопок |
custom_buttons.json |
Старый формат кнопок; используется для миграции, если settings.json отсутствует |
QuickNote.md |
Файл быстрой заметки |
clipboard_history.json |
История Clipboard Manager, если включено сохранение истории |
Icons |
Пользовательские и импортированные иконки |
error.log |
Текущий журнал ошибок |
error.log.bak |
Резервная копия журнала после ротации |
error.log ротируется при достижении примерно 1 МБ.
Основные поля настроек:
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
UiCulture |
auto |
Язык интерфейса |
Edge |
Top |
Сторона панели |
MonitorIndex |
0 |
Индекс монитора |
ActivationZoneSizePercent |
30 |
Размер зоны активации |
PanelSizePercent |
80 |
Размер панели |
ActivationDelayMs |
150 |
Задержка появления |
GlobalHotkeyCtrl |
false |
Модификатор Ctrl для показа панели |
GlobalHotkeyAlt |
true |
Модификатор Alt для показа панели |
GlobalHotkeyShift |
false |
Модификатор Shift для показа панели |
GlobalHotkeyWin |
false |
Модификатор Win для показа панели |
GlobalHotkeyKey |
D4 |
Клавиша показа панели |
NextContextHotkey |
не назначено | Следующая панель |
PreviousContextHotkey |
не назначено | Предыдущая панель |
AddButtonHotkey |
не назначено | Добавить кнопку |
ShowPresetSearch |
true |
Показывать поиск |
ShowPresetScreenshot |
true |
Показывать скриншот |
ShowPresetVideo |
true |
Показывать запись видео |
ShowPresetCalc |
true |
Показывать калькулятор |
ShowPresetExplorer |
true |
Показывать проводник |
ShowPresetDownloads |
true |
Показывать загрузки |
ShowPresetTimerStopwatch |
true |
Показывать таймер и секундомер |
ShowPresetColorPicker |
false |
Показывать выбор цвета |
ShowPresetQuickNote |
false |
Показывать Quick Note |
ShowPresetFileSorter |
true |
Показывать File Sorter |
ShowPresetIconConverter |
true |
Показывать Icon Converter |
ShowPresetQRCodeGenerator |
false |
Показывать QR Code Generator |
ShowPresetClipboardManager |
false |
Показывать Clipboard Manager |
ShowPresetShowDesktop |
true |
Показывать Show Desktop |
ShowPresetAppsFolder |
true |
Показывать Apps Folder |
ShowPresetCopilot |
true |
Показывать Copilot |
ClipboardManagerPersistHistory |
true |
Сохранять историю Clipboard Manager между сессиями |
QRCodeGeneratorHotkey |
не назначено | Запустить QR Code Generator |
TimerSoundEnabled |
true |
Звук окончания таймера |
TimerIsStopwatchMode |
false |
Последний выбранный режим: таймер или секундомер |
TimerDuration |
00:05:00 |
Последняя длительность таймера |
QuickNoteThemeId |
dark |
Тема Quick Note |
QuickNotePinned |
false |
Закрепить окно Quick Note (не закрывать при потере фокуса) |
QuickNoteLeft |
— | Координата X окна Quick Note |
QuickNoteTop |
— | Координата Y окна Quick Note |
QuickNoteWidth |
— | Ширина окна Quick Note |
QuickNoteHeight |
— | Высота окна Quick Note |
Contexts |
8 панелей | Список панелей-контекстов |
ActiveContextId |
context-1 |
Активная панель |
Elements |
пустой список | Пользовательские кнопки |
UtilityButtonOrder |
пустой список | Порядок кнопок встроенных утилит |
В UI доступны глобальные hotkey:
- показать или скрыть панель;
- следующая панель;
- предыдущая панель;
- добавить кнопку;
- запустить File Sorter;
- запустить Quick Note;
- запустить Color Picker;
- запустить Timer/Stopwatch;
- запустить QR Code Generator.
Внутри окна настроек нельзя сохранить две одинаковые назначенные комбинации. Если Windows не даёт зарегистрировать hotkey, настройки сохраняются, но приложение показывает предупреждение, а комбинация не работает до изменения.
Поддерживаемые модификаторы:
Ctrl;Alt;Shift;Win;- распространённые комбинации этих модификаторов.
Поддерживаемые клавиши:
Space;[;];A-Z;0-9;NumPad0-NumPad9и операторы numpad;F1-F12.
Длительности анимаций централизованы в AiteBar/Constants.cs, чтобы MainWindow, drag-and-drop и утилиты не расходились по значениям:
| Константа | Значение | Назначение |
|---|---|---|
AnimationFadeMs |
140 |
Fade-in/fade-out кнопок при drag-and-drop |
AnimationSlideMs |
150 |
Slide-анимация перестановки кнопок |
PanelShowAnimationMs |
175 |
Показ панели |
PanelHideAnimationMs |
140 |
Скрытие панели |
QuickNoteSlideMs |
200 |
Анимация окна Quick Note |
| Тип | Техническое поведение |
|---|---|
| Web | Запускает URL в выбранном браузере, профиле и режиме |
| Программа | Запускает .exe, .lnk или .appref-ms |
| Файл | Открывает файл через системную ассоциацию |
| Папка | Открывает папку в Проводнике |
| Скрипт | Запускает .bat, .cmd, .ps1 или .py после подтверждения |
| Команда | Запускает команду через командную оболочку после подтверждения |
| Hotkey | Отправляет выбранное сочетание клавиш в активное окно |
Для .py при сохранении проверяется наличие python.exe в PATH.
Команды выполняются через командную оболочку. PowerShell-скрипты запускаются через доступный PowerShell. Скрипты и команды требуют подтверждения перед запуском.
Для команд действует дополнительное предупреждение, если строка содержит shell chaining или redirection (&, |, >, <) либо потенциально разрушительные команды (del, erase, rd, rmdir, rm, remove-item, format, shutdown, restart-computer, stop-computer, bcdedit, diskpart, cipher). Это предупреждение не блокирует запуск само по себе: пользователь всё равно принимает финальное решение в confirmation dialog.
Технические строки запуска, такие как cmd.exe /c, powershell.exe -NoProfile, pwsh.exe и детали политики выполнения PowerShell, должны оставаться в технической документации, а не в user manual.
Редактор web-кнопки показывает Chrome, Edge, Brave, Yandex и Firefox. Внутренняя модель и сервисы также могут учитывать Opera, Opera GX и Vivaldi, но эти варианты не являются основными пользовательскими пунктами текущего редактора.
Поддерживаемые режимы:
- обычный запуск;
- app mode для Chromium-браузеров;
- incognito/private;
- fullscreen после запуска;
- выбранный профиль;
- ротация профилей.
Если список профилей ротации пуст, это трактуется как "использовать все доступные профили".
| Инструмент | Техническое поведение |
|---|---|
| Поиск | Ищет текст из буфера обмена в Google |
| Скриншот | Открывает ms-screenclip: |
| Видео | Открывает ms-screenclip:?type=recording |
| Калькулятор | Запускает calc.exe |
| Проводник | Запускает explorer.exe |
| Загрузки | Открывает shell:Downloads |
| Таймер и секундомер | Открывает встроенное окно таймера/секундомера |
| Выбор цвета | Запускает overlay-пипетку и копирует HEX |
| Quick Note | Открывает локальную заметку с автосохранением |
| File Sorter | Утилита для сортировки файлов по расширению и другим правилам |
| Icon Converter | Утилита для конвертации изображений в формат ICO |
| QR Code Generator | Утилита для создания QR-кодов с экспортом в PNG/SVG |
| Clipboard Manager | Показывает runtime-историю текста и изображений из буфера обмена |
| Show Desktop | Минимизирует окна и показывает рабочий стол |
| Apps Folder | Открывает системную папку Applications |
| Copilot | Запускает Windows Copilot |
Окно таймера/секундомера открывается из встроенных быстрых инструментов. Поддерживаются:
- режим таймера с пресетами от 1 до 120 минут;
- ввод своего времени в формате
hh:mm:ss,mm:ssили минуты одним числом; - старт, пауза и сброс;
- режим секундомера с отображением сотых долей секунды;
- компактный режим окна;
- звук окончания таймера, который можно отключить;
- сохранение последнего режима, длительности и настройки звука.
Quick Note сохраняет данные в QuickNote.md. Поддерживаются:
- автосохранение;
- базовое форматирование;
- открытие файла во внешнем редакторе;
- очистка заметки с подтверждением;
- темы;
- изменение размера и положения окна;
- закрытие по
Escи по клику вне окна; Ctrl+Shift+Cдля копирования всего текста;Ctrl+кликдля открытия URL.
Для больших заметок подсветка ссылок может отключаться из соображений производительности.
Экспорт сохраняет текущую панель в пакет .aitebarpanel.
В пакет входят:
- manifest с описанием панели;
- пользовательские кнопки активной панели;
- связанные пользовательские и импортированные иконки, если они нужны кнопкам.
Импорт:
- проверяет пакет;
- проверяет manifest;
- копирует импортированные иконки в локальное хранилище;
- добавляет кнопки в текущую панель;
- не меняет имя текущей панели.
Ограничения размера пакета и проверки manifest относятся к технической валидации и не должны подробно описываться в user manual.
Главная панель:
- список включенных панелей;
Импорт в текущую панель...;Экспорт текущей панели....
Пользовательская кнопка:
Редактировать;Дублировать;Переименовать;Переместить;Копировать URL;Копировать путь;Копировать команду;Открыть расположение;Удалить.
Встроенный инструмент:
Открепить.
Tray-меню:
Открыть;Настройки программы;Проверить обновления;О программе;Поддержать автора;Закрыть и выйти.
Сборка Release:
dotnet build .\AiteBar.sln -c ReleaseТесты:
dotnet test .\AiteBar.Tests\AiteBar.Tests.csproj -c ReleaseFallback для WPF/MSBuild temp-проблем:
dotnet vstest .\AiteBar.Tests\bin\Release\net10.0-windows\AiteBar.Tests.dllСборка инсталлятора:
.\installer\Build-Installer.ps1Publish-артефакты:
artifacts\publish\win-x64
Installer-артефакты:
artifacts\installer