19 августа 2019 г.

Windows Service создание, изменение и удаление службы из services.msc (на языке C#)

Консольная утилита sc.exe

В составе операционной системы Windows идёт утилита sc, которую можно без проблем вызвать в командной строке sc /?. С её помощью можно изменить любые свойства сервиса. Описание на сайте Microsoft [ссылка].  Примеры:
  1. Создание службы (sc create):
    sc create NewService DisplayName="New Service" binpath=c:\windows\system32\NewServ.exe type=share start=auto
  2. Изменение службы (sc config):
    sc config NewService binpath= "c:\windows\system32\NewServ.exe"
  3. Удаление службы (sc delete):
    sc delete newserv
Для работы с sc следует понимать одну вещь, что у службы есть идентификатор (Service Name) и имя службы (Display name), все изменения делаются используя идентификатор, который можно посмотреть в свойствах службы, пример:

29 октября 2018 г.

Решение нетипичных проблем с FastReport.

Статья будет состоять из способов решения проблем с FastReport ver. 2018.3.20. Проблемы изложенная тут может быть исправлена в последующих версиях FastReport либо отсутствовать в прошлых. Так же не исключаю, что я могу не знать что то, тогда если вам известно решение, то буду рад комментариям. Заранее Спасибо! 

Темы описанные в статье:
  1. Автоматическая высота строки для текста не помещающегося в ячейку.
  2. Как обойти в коде все строки таблицы DataSource.
  3. Как использовать Linq или подключить сборки в отчёт FastReport.
  4. Объединение ячеек таблицы.
  5. Не работающий междустрочный интервал.
  6. Примеры использования условного оператора IIF(,,) в дизайнере отчёта.
  7. Сортировка и группировка данных в таблице отчёта.
  8. При экспорте в Excel или в Html большой таблицы, ячейки начинают биться либо появляется разделительная линия.

7 октября 2018 г.

Треугольник Серпинского методом хаоса. Программа на C# с исходным кодом.

Предыстория


Просматривая youtube, я наткнулся на интересное видео, в котором был показан пример создания фракталов используя очень простые правила:
  1. Мы имеем несколько опорных точек на плоскости. Все они пронумерованы.
  2. Устанавливаем начальную произвольную точку с которой начнётся построение. Будем её называть текущей точкой.
  3. Возьмём генератор случайных чисел в дапозоне от 1 до количества опорных точек. В зависимости от сгенерированного числа выбираем опорную точку под этим номером, после чего строим новую точку по середине (1/2 расстояния) от текущей до опорной точки. Это будет новая текущая точка для следущей итерации, после чего операцию повторяем действия до бесконечности.
Ссылка на то видео: