Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

Winerr.NET: различия между версиями

Материал из YastreWiki
мНет описания правки
мНет описания правки
 
(не показано 8 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Инфобокс Программное обеспечение
{{Инфобокс
| название = Winerr.NET
| название = Winerr.NET
| логотип = Winerr.NET Logo.png
| изображение = Winerr.NET Logo.png
| автор = [[DimaYastrebov]]
| автор(Автор) = [[DimaYastrebov]]
| первая версия = 0.9.8.389 (12 сентября 2025)
| первая версия(Первая версия) = 0.9.8.389 (12 сентября 2025)
| последняя версия = 1.1.0 (30 сентября 2025)
| последняя версия(Последняя версия) = 1.5.2 (11 февраля 2026)
| язык = C#, TypeScript (React)
| язык(Язык) = C#, TypeScript (React)
| лицензия = ISC
| лицензия(Лицензия) = ISC
| сайт = [https://github.com/DimaYastrebov/Winerr.NET GitHub]<br>[https://winerr-net.yastre.top/ Официальный WebUI]
| сайт(Сайт) = [https://github.com/DimaYastrebov/Winerr.NET GitHub]<br>[https://winerr-net.yastre.top/ Официальный WebUI]
| подпись = Логотип
}}
}}


'''Winerr.NET''' — это генератор [[Смешные ошибки|смешных ошибок]] на C# (.NET) от [[DimaYastrebov]], который позволяет создавать реалистичные изображения фейковых окон ошибок.
'''Winerr.NET''' — это генератор [[Смешные ошибки|смешных ошибок]] от [[DimaYastrebov]]. Проект подобен [[Winerr]] от [[Shikoshib]], но написан с нуля на C# и не является его прямым наследником. Так же имеет ClearType рендеринг текста.


Проект решает ту же задачу, что и [[Winerr]] от [[Shikoshib]], но написан полностью с нуля на других технологиях и не является его прямым наследником.
Поддерживает на текущий момент исключительно Windows 7 Basic/Aero + 9 тем для Aero (Architecture, Landscapes, Nature, Scenes, Ruby, Gold, Onyx, Emerald и Sea)


== Состав проекта ==
== Состав проекта ==
Строка 31: Строка 32:


== История разработки ==
== История разработки ==
История разработки велась поэтапно, от простого консольного инструмента к полноценному веб-приложению.


Первый публичный релиз, версия '''0.9.8.389''' (12 сентября 2025), включал в себя базовый функционал: ядро для рендеринга (<code>Winerr.NET.Core</code>) и утилиту командной строки (<code>Winerr.NET.Cli</code>).
Первый публичный релиз, версия '''0.9.8.389''' (12 сентября 2025), включал в себя базовый функционал: ядро для рендеринга (<code>Winerr.NET.Core</code>) и утилиту командной строки (<code>Winerr.NET.Cli</code>).


С выходом версии '''0.10.0''' (18 сентября 2025) был добавлен веб-сервер (<code>Winerr.NET.WebServer</code>), что позволило работать с генератором по сети через API.
С выходом версии '''0.10.0''' (18 сентября 2025) был добавлен веб-сервер (<code>Winerr.NET.WebServer</code>).


Начиная с версии '''1.0.0''' (22 сентября 2025), проект обзавелся полноценным веб-интерфейсом (<code>Winerr.NET.WebUI</code>), который сделал процесс создания ошибок визуальным и доступным для широкого круга пользователей.
Начиная с версии '''1.0.0''' (22 сентября 2025), проект получил полноценным веб-интерфейсом (<code>Winerr.NET.WebUI</code>).


==== Последние изменения ====
==== Последние изменения ====
Строка 145: Строка 144:


== См. также ==
== См. также ==
* [[Winerr.js]]
* [[Winerr]]
* [[Winerr]]
* [[Winerr.js]]
[[Категория:Генераторы СО]]
* [[Смешные ошибки]]

Текущая версия от 07:12, 15 мая 2026

Winerr.NET
Логотип
ЛицензияISC
Первая версия0.9.8.389 (12 сентября 2025)
ЯзыкC#, TypeScript (React)
АвторDimaYastrebov
СайтGitHub
Официальный WebUI
Последняя версия1.5.2 (11 февраля 2026)

Winerr.NET — это генератор смешных ошибок от DimaYastrebov. Проект подобен Winerr от Shikoshib, но написан с нуля на C# и не является его прямым наследником. Так же имеет ClearType рендеринг текста.

Поддерживает на текущий момент исключительно Windows 7 Basic/Aero + 9 тем для Aero (Architecture, Landscapes, Nature, Scenes, Ruby, Gold, Onyx, Emerald и Sea)

Состав проекта

править править код

Проект имеет модульную структуру, что позволяет использовать его компоненты как вместе, так и по отдельности.

Winerr.NET.Core
Сердце проекта. Это основная библиотека, в которой реализована вся логика по отрисовке окон: работа со шрифтами, построение рамок, расстановка кнопок и иконок.
Winerr.NET.Cli
Утилита для работы через командную строку (терминал). Позволяет генерировать ошибки с помощью текстовых команд, что удобно для автоматизации и скриптов.
Winerr.NET.WebServer
Локальный веб-сервер, который предоставляет API для доступа к генератору по сети. Используется веб-интерфейсом для выполнения всех операций.
Winerr.NET.WebUI
Веб-интерфейс, написанный на Next.js. Предоставляет удобный графический интерфейс в браузере для создания фейковых окон ошибок.

История разработки

править править код

Первый публичный релиз, версия 0.9.8.389 (12 сентября 2025), включал в себя базовый функционал: ядро для рендеринга (Winerr.NET.Core) и утилиту командной строки (Winerr.NET.Cli).

С выходом версии 0.10.0 (18 сентября 2025) был добавлен веб-сервер (Winerr.NET.WebServer).

Начиная с версии 1.0.0 (22 сентября 2025), проект получил полноценным веб-интерфейсом (Winerr.NET.WebUI).

Последние изменения

править править код

Сравнить с v1.5.1

Сравнить с v1.5.0

Сравнить с v1.4.0

Сравнить с v1.3.0

Сравнить с v1.2.0

Сравнить с v1.1.1

Сравнить с v1.1.0

  • WebUI: Добавлена кнопка-ссылка на GitHub-репозиторий в панель предпросмотра для быстрого доступа к исходному коду.

Исправлено (Fixed)

править править код
  • Core: Исправлен критический сбой (`ArgumentOutOfRangeException`), возникавший при генерации изображения с очень маленьким значением `maxWidth`. Проблема была вызвана тем, что расчетная ширина контента могла стать отрицательной или нулевой, что недопустимо для конструктора изображений. (#3)

Компоненты (Components)

править править код
  • Winerr.NET.Core: v0.12.1.448
  • Winerr.NET.WebServer: v0.5.2.93
  • Winerr.NET.Cli: v0.4.8.135
  • Winerr.NET.Assets: v0.7.0.184

→ Смотреть полную историю версий

Существует три основных способа работы с Winerr.NET.

Веб-интерфейс Winerr.NET версии 1.0.2

Это самый простой способ для большинства пользователей. Веб-интерфейс проекта (Winerr.NET.WebUI) предоставляет следующие возможности:

  • Создание ошибок в одиночном и пакетном (batch) режимах.
  • Конструктор кнопок с возможностью ручной сортировки.
  • Предпросмотр результата в реальном времени.
  • Импорт и экспорт конфигураций в формате JSON.

Официально развернутый веб-интерфейс доступен по адресу: https://winerr-net.yastre.top/.

Утилита командной строки (CLI)

править править код

Для генерации изображения используется команда `generate` с набором параметров. Это полезно для быстрой генерации или для использования в скриптах.

Winerr.NET.Cli.exe generate --style "Win7_Aero" --title "Пример" --content "Текст\nошибки" --icon 48 --output "example.png"
./Winerr.NET.Cli generate --style "Win7_Aero" --title "Пример" --content "Текст\nошибки" --icon 48 --output "example.png"

Для получения полного списка доступных стилей можно использовать команду:

# Для Windows
Winerr.NET.Cli.exe list-styles

# Для Linux / macOS
./Winerr.NET.Cli list-styles

Использование в качестве библиотеки

править править код

Библиотеку Winerr.NET.Core можно подключить к любому .NET-проекту для программной генерации ошибок.

Важно!
Библиотека Winerr.NET.Core напрямую зависит от Winerr.NET.Assets. Для корректной работы необходимо, чтобы оба файла (Winerr.NET.Core.dll и Winerr.NET.Assets.dll) находились в директории с твоим приложением.


Процесс сводится к созданию объекта конфигурации ErrorConfig, настройке всех параметров (стиль, текст, иконки) и вызову метода Generate у класса ErrorRenderer.

using Winerr.NET.Core.Configs;
using Winerr.NET.Core.Enums;
using Winerr.NET.Core.Renderers;

// Обязательно нужно один раз загрузить ассеты при старте приложения
Winerr.NET.Core.Managers.AssetManager.Instance.LoadAssets();

// 1. Создание конфигурации окна
var config = new ErrorConfig
{
    // Выбираем стиль окна
    SystemStyle = SystemStyle.Windows7Aero,

    // Задаем текст
    Title = "Пример из кода",
    Content = "Это окно было сгенерировано\nпрограммно с помощью Winerr.NET.Core.",
    
    // Указываем ID иконки
    IconId = 48,

    // Настраиваем кнопки
    Buttons = new List<ButtonConfig>
    {
        new ButtonConfig
        {
            Text = "OK",
            Type = ButtonType.Recommended,
            TextConfig = new TextRenderConfig { DrawMnemonic = false }
        },
        new ButtonConfig
        {
            Text = "Отмена",
            Type = ButtonType.Default
        }
    },

    // Другие параметры
    ButtonAlignment = ButtonAlignment.Right,
    IsCrossEnabled = true
};

// 2. Создание рендерера и генерация изображения
var renderer = new ErrorRenderer();
using var image = renderer.Generate(config);

// 3. Сохранение результата в файл
image.SaveAsPng("error_from_code.png");