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

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

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


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


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

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

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

Winerr.NET — это генератор смешных ошибок на C# (.NET) от DimaYastrebov, который позволяет создавать реалистичные изображения фейковых окон ошибок.

Проект решает ту же задачу, что и Winerr от Shikoshib, но написан полностью с нуля на других технологиях и не является его прямым наследником. Так же имеет 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), что позволило работать с генератором по сети через API.

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

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

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

Сравнить с 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");