Решения задачи с Ulearn

Практика «Таймеры» Давайте напишем удобную утилиту для внутриязыкового профайлинга. В реальности, конечно, так никто не делает, и используется внешний профайлер (например, dotTrace), но пусть. Использование должно быть примерно такое: using (Timers.Start(«T1»)) { // do things 1 using (Timers.Start(«T2»)) { //do things 2 } using (Timers.Start(«T3»)) { //do things 3 } } Таймер T1 должен оценивать […]

Решения задачи с Ulearn

Практика «API » Используем паттерн Disposable в ситуации, схожей с работой со внешним API. В проекте Memory.API в роли внешнего API выступает класс MagicAPI, методы которого позволяют выделить ресурс, освободить его, и проверить, какие ресурсы выделены в настоящий момент. Реализуйте класс APIObject, который будет оберткой над API. Выделение ресурса через внешнее API должна происходить в […]

Решения задачи с Ulearn

Практика «Случайные объекты» Для нагрузочного тестирования вашей программы вам нужно уметь создавать большое количество экземпляров классов, при этом они должны быть существенно различны. Вы решили использовать для этой цели генератор случайных чисел, и решили использовать атрибуты для того, чтобы указать, из какого распределения брать значения для тех или иных свойств в объектах. Понятно, что решение […]

Диалоговое окно сообщений для пользователя c#

Приветствую всех, сегодня я покажу, как вывести диалоговое окно с сообщением пользователю, я частенько использую в своих программах. Да и порой под забываю какое именно мне нужно, и подсматриваю здесь. Для начало создадим обычное приложение WinForm и разместим на нем кнопку при нажатии, на которое будем выводить сообщения. using System; using System.Windows.Forms; namespace Сообщения { […]

Программа для определения базового адреса

Приветствую всех, в последнее время пришлось работать с читами для игр. За это время я написал для удобства не сколько утилит. Одна из них это BaseAdress которая при выборе процесса показывает его базовый адрес. Я не буду сейчас углубляться в терминологии для чего он нужен, но в таких программах как Cheat Engine без моей утилиты […]

Как получить список всех модулей? C#

Приветствую всех, последние две недели я помогал в  разработке чита для одной из популярных игр на Unity. Но админы использовали «античит» программы для получения всех dll игры, и конечно отображалась и наша dll с читом которая была заинжекчена. Одна из моих задач была обойти античит и скрыть заинжектированную dll. Я хоть и сталкивался в работе […]

Как создать кнопку любой формы?

Приветствую всех, конечно мало кто уже использует winform однако, студенты и начинающие обычно начинают именно с него. И классическая форма кнопок печалит. Рассмотрим пример, для этого мы создадим кнопку на форме и используем код ниже: //добавляем необходимое простанство имен: using System.Drawing.Drawing2D; void OvalForm(Button btn) { GraphicsPath gp = new GraphicsPath(); Graphics g = CreateGraphics(); //Создаем […]

Агрегация в C#

Приветствую всех, сегодня я затрону тему об агрегации, что это такое и рассмотрим пример использования. Применение, суть его в том что бы расширить функциональность имеющего класса, будь он вашим или чужим, знаетели вы он нем что то или нет. Агрегация позволит избежать избыточного кода и работать с методами и классами. Агрегация и композиция очень близкие […]

Как сохранить данные программы с помощью файла *.ini C#

Приветствую все! Сегодня я покажу еще один вариант сохранения настроек и данных в фаил ini, данный метод хоть и уходит в небытие, однако до сих пор используется в разработке ПО. По сути его вытеснил XML так, как по принципу работы он очень его напоминает. Если посмотреть следующий пример, то вы поймете то о чем я […]

Примеры с делегатами в C#

Приветствую всех, сегодня хочу еще раз поговорить о делегатах. Давайте вспомним что такое делегат. По сути, это объект, который хранит ссылку на некий метод, и может этот метод вызвать при необходимости. Точнее мы можем вызвать метод через этот объект. И особенность использования делегатов в том, что при объявлении ссылки на объект-делегат мы можем и не знать, […]