Winerr.NET: различия между версиями
Дополнительные действия
мНет описания правки |
мНет описания правки |
||
| (не показано 7 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
{{Инфобокс | {{Инфобокс | ||
| название = Winerr.NET | | название = Winerr.NET | ||
| | | изображение = Winerr.NET Logo.png | ||
| автор = [[DimaYastrebov]] | | автор(Автор) = [[DimaYastrebov]] | ||
| первая версия = 0.9.8.389 (12 сентября 2025) | | первая версия(Первая версия) = 0.9.8.389 (12 сентября 2025) | ||
| последняя версия = 1. | | последняя версия(Последняя версия) = 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''' — это генератор [[Смешные ошибки|смешных ошибок]] | '''Winerr.NET''' — это генератор [[Смешные ошибки|смешных ошибок]] от [[DimaYastrebov]]. Проект подобен [[Winerr]] от [[Shikoshib]], но написан с нуля на C# и не является его прямым наследником. Так же имеет ClearType рендеринг текста. | ||
Поддерживает на текущий момент исключительно Windows 7 Basic/Aero + 9 тем для Aero (Architecture, Landscapes, Nature, Scenes, Ruby, Gold, Onyx, Emerald и Sea) | |||
== Состав проекта == | == Состав проекта == | ||
| Строка 32: | Строка 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>) | С выходом версии '''0.10.0''' (18 сентября 2025) был добавлен веб-сервер (<code>Winerr.NET.WebServer</code>). | ||
Начиная с версии '''1.0.0''' (22 сентября 2025), проект | Начиная с версии '''1.0.0''' (22 сентября 2025), проект получил полноценным веб-интерфейсом (<code>Winerr.NET.WebUI</code>). | ||
==== Последние изменения ==== | ==== Последние изменения ==== | ||
| Строка 146: | Строка 144: | ||
== См. также == | == См. также == | ||
* [[Winerr.js]] | |||
* [[Winerr]] | * [[Winerr]] | ||
[[Категория:Генераторы СО]] | |||
Текущая версия от 07:12, 15 мая 2026
| Лицензия | 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).
Последние изменения
править править код1.5.2 - 2026-02-11
править править код1.5.1 - 2025-10-27
править править код1.5.0 - 2025-10-27
править править код1.4.0 - 2025-10-25
править править код1.3.0 - 2025-10-24
править править код1.2.0 - 2025-10-24
править править код1.1.1 - 2025-09-30
править править кодДобавлено (Added)
править править код- WebUI: Добавлена кнопка-ссылка на GitHub-репозиторий в панель предпросмотра для быстрого доступа к исходному коду.
Исправлено (Fixed)
править править код- Core: Исправлен критический сбой (`ArgumentOutOfRangeException`), возникавший при генерации изображения с очень маленьким значением `maxWidth`. Проблема была вызвана тем, что расчетная ширина контента могла стать отрицательной или нулевой, что недопустимо для конструктора изображений. (#3)
Компоненты (Components)
править править кодWinerr.NET.Core: v0.12.1.448Winerr.NET.WebServer: v0.5.2.93Winerr.NET.Cli: v0.4.8.135Winerr.NET.Assets: v0.7.0.184
Использование
править править кодСуществует три основных способа работы с Winerr.NET.
Веб-интерфейс
править править код
Это самый простой способ для большинства пользователей. Веб-интерфейс проекта (Winerr.NET.WebUI) предоставляет следующие возможности:
- Создание ошибок в одиночном и пакетном (batch) режимах.
- Конструктор кнопок с возможностью ручной сортировки.
- Предпросмотр результата в реальном времени.
- Импорт и экспорт конфигураций в формате JSON.
Официально развернутый веб-интерфейс доступен по адресу: https://winerr-net.yastre.top/.
Утилита командной строки (CLI)
править править кодДля генерации изображения используется команда `generate` с набором параметров. Это полезно для быстрой генерации или для использования в скриптах.
Windows (cmd / PowerShell)
править править кодWinerr.NET.Cli.exe generate --style "Win7_Aero" --title "Пример" --content "Текст\nошибки" --icon 48 --output "example.png"
Linux / macOS
править править код./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.
Пример на C#
править править код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");