Taskbar с живыми превью работающих приложений (олдскул на NET11)

от автора

У вас тоже есть такая проблема на windows, что превью к таскбару не прилипает?

Вот хочешь посмотреть (быстро и без переключения)  — «что там скрипт/агент/отладчик прямо сейчас делают?» — наводишь на иконку в таскбаре и смотришь сильно прищуриваясь. Только мышку отвёл — и всё пропало. А раскладывать всё по сеткам windows‑окон сложно: во‑первых напрягает это делать на каждый запуск нового окна, во‑вторых при переключениях получается сюрреалистичная картина «поверх окон одного экрана висят половинки/четвертинки другого». А тут у меня несколько параллельных процессов по несколько часов и я во время работы поймал себя на постоянных переключениях между окнами, что сильно отвлекает.

Решил что «хватит это терпеть» и запилил (через Claude) маленькое приложение, которое решает всю проблему — montab (Monitoring Tabs). Поскольку это windows и нужны прямые системные API — решил делать на NET11. А потом оптимизировать, чтобы размер был минимальный и без всяких зависимостей.

Ожидал что будет возня с видеопотоками, чанками, кодеками, трансляциями, winUI и морально готовился к долгому сложному процессу. Но изучая новинки предметной области — узнал о появлении DWM Thumbnail API которое позволяет рулить отображением прямо на уровне менеджера экрана. Сделал набросок и он прямо сразу заработал как нужно!

Ещё три часа отлаживал UX и «проектировал на живую», потом ещё час делал ревью и «причёсывал код», чтобы не было лишних циклов, аллокаций, вычислений, рефлексий и прочей мешанины. Я просто c олдскульным сознанием из «64k demo scene» и терпеть ненавижу когда мелко функциональная программа весит 100Мб+ и ещё постоянно крутит CPU даже в режиме ожидания. В итоге получился атомарный exe 1.95Mb, потребляет 4Mb памяти (90% из этого системное API, убрать нельзя) и полностью инертно работает в фоне.

Экран с работающим приложением montab

Экран с работающим приложением montab

Функционал:

  • Показывает живые превью активных программ (минимизированные — в свёрнутом виде в конце списка). Всю панель можно раздвигать и перемещать лево\право экрана (или через меню по правому клику, там же можно включить автостарт).

  • Превью можно перемещать вверх/вниз. Колесо мышки листает список, если он выходит за экран.

  • Клик — переключение. Двойной клик — сворачивание\разворачивание. Крестик — закрытие.

  • При наведении на превью включается режим zoom x5 и можно быстро и удобно просмотреть что там происходит внутри.

  • Если зажать Ctrl при наведении, то колесом мышки можно крутить zoom, движением можно позиционировать. После чего будет отображаться именно эта область — что удобно если отслеживаешь только конкретные строчки, а не весь экран.

Сразу захотелось включить видео как PiP и смотреть пока идёт работа. Но оказалось что браузеры перестают рендерить видео как только понимают что приложение не отображается на экране. Нашёл как поправить это через regedit. Рецепт приложил к описанию на github.

Очень доволен новыми ИИ‑возможностями, которые появились у разработчиков в 2026 году.
«Я буду сгибать, что хочу, когда хочу, кого хочу, никто меня не остановит, ура!» ©

GitHub проекта: https://github.com/faxenoff/montab

ссылка на оригинал статьи https://habr.com/ru/articles/1055654/