MultiAPI_Lib 0.1.2.135

There is a newer version of this package available.
See the version list below for details.
dotnet add package MultiAPI_Lib --version 0.1.2.135                
NuGet\Install-Package MultiAPI_Lib -Version 0.1.2.135                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MultiAPI_Lib" Version="0.1.2.135" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MultiAPI_Lib --version 0.1.2.135                
#r "nuget: MultiAPI_Lib, 0.1.2.135"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MultiAPI_Lib as a Cake Addin
#addin nuget:?package=MultiAPI_Lib&version=0.1.2.135

// Install MultiAPI_Lib as a Cake Tool
#tool nuget:?package=MultiAPI_Lib&version=0.1.2.135                

MultiAPI - GitHub NuGet MultiAPI MultiAPI License

MultiAPI - Это библиотека и сборка разного ПО (Далее "Библиотека") для разработчиков. Она содержит множество функций чтобы ускорить разработку ПО. Данная библиотека усовершенствованная версия библиотеки MultiLib. MultiAPI подойдёт как начинающим разработчикам, так и профессиональным разработчикам ПО.

Если вам понравился данный проект, то поставьте пожалуйста звезду на проекте, на GitHub. Спасибо ❤️

При возникших вопросах или пожеланиях, вы можете написать на почту multiplayercorporation@gmail.com или создать запрос в Issues.

Документация MultiAPI_Lib

Введение

Выше в основном описание самой библиотеки. Библиотека и документация в основном нацелена на начинающих программистов, и на облегчение написания кода. Скорее всего найдутся люди с вопросами: "Чем она полезна для начинающих программистов?", "Чем она облегчает написание кода?". Я сам хочу знать ответы на данные вопросы. Библиотека просто существует. Возможно, она найдёт своё применение.

Для работы с библиотекой можно использовать любую среду разработки, но обязательно использовать .net framework версии не меньше 4.7.2!

[!WARNING] В данный момент библиотека на этапе разработки, поэтому до версии 1.0.0.XXXX мы не обещаем полную совместимость старых функций в новых версиях.

[!NOTE] В исходных кодах, в документации могут быть комментарии разработчика о том как работает код.

Быстрый доступ

<space><space>

Импорт библиотеки в проект

[!NOTE] Данный пункт для новичков и в примере используется Visual Studio 2022 с русским языком.

Установите библиотеку в проект.

[!WARNING] Проект должен иметь версию .net Framework не меньше 4.7.2!

Библиотеку вы можете установить вручную, с помощью NuGet или с помощью диспетчера пакетов NuGet.

Ручной метод

  1. Скачайте стабильную версию библиотеки по этой ссылке.

Распознать стабильную версию можно по такому значку: MultiAPI

Почти стабильная: MultiAPI

Не стабильная: MultiAPI

  1. Откройте ваш проект.
  2. В обозревателе решений найдите пункт "Ссылки".
  3. Нажмите ПКМ по пункту "Ссылки" и выберите "Добавить ссылку...".
  4. В открывшемся окне нажмите на кнопку "Обзор..." в правом нижнем углу.
  5. Выберите скачанную библиотеку.
  6. Перейдите во вкладку "Обзор" и поставьте там флажок для библиотеки MultiAPI_Lib.dll
  • MultiAPI_Lib.dll

Использование коммандной строки NuGet

  1. Откройте ваш проект.
  2. Откройте командную строку NuGet (Средства → Диспетчер пакетов NuGet → Консоль диспетчера пакетов).
  3. Введите в консоль следущую команду: Install-Package MultiAPI_Lib, этим вы установите самую последнюю версию. Определённую версию вы можете найти на NuGet NuGet

Использование диспетчера пакетов NuGet

  1. Откройте ваш проект.
  2. Откройте диспетчер пакетов NuGet (Средства → Диспетчер пакетов NuGet → Управление пакетами NuGet для решения...).
  3. В поисковой строке введите MultiAPI_Lib и найдите пакет с абсолютно таким же названием, а автором dmitriykotik_off.
  4. Нажмите на пакет, в правом окне диспетчера выберите проекты в которые вам надо установить библиотеку, версию и нажмите кнопку установить.

Импорт библиотеки

В проекте импортируйте библиотеку следующим образом:

using MultiAPI;

Древо классов и методов

.
└── MultiAPI_Lib
    ├── Main.cs - Basic
    │   ├── int rnd(int startInt, int endInt)
    │   ├── void terminate(int errorCode)
    │   ├── string getCurrentFolder()
    │   └── void writeMachine(string text, int countDown = 40, bool writeLine = true)
    ├── FTP.cs - FTP
    │   ├── FTP(string host, string userName, string password)
    │   ├── void upload(string localFullPath)
    │   ├── void download(string localPath)
    │   ├── void delete()
    │   └── bool exists()
    ├── Generator.cs - Generator
    │   ├── string GenPassword(int length)
    │   └── string GenPassword(int length, string dictionary)
    ├── INI.cs - INI
    │   ├── INI(string iniFile)
    │   ├── string getValue(string section, string variable)
    │   ├── void setValue(string section, string variable, string text)
    │   ├── bool existVariable(string section, string variable)
    │   ├── void deleteVariable(string section, string variable)
    │   └── void deleteAllVariables(string section)
    ├── Internet.cs - Internet
    │   ├── bool TestConnection()
    │   └── bool ping(string url)
    ├── Mail.cs - Mail
    │   └── void send(string fromEmail, string fromName, string toEmail, string subject, string textOrHtml, string smtpServer, int smtpPort, string smtpPasswordMail)
    ├── Music.cs - Music
    │   ├── Music(string pathFile, bool autoStart = false)
    │   ├── void play()
    │   ├── void stop()
    │   ├── void pause()
    │   ├── void setVolume(int volume)
    │   ├── int getVolume()
    │   ├── double getDuration()
    │   ├── void setPosition(double position)
    │   ├── double getPosition()
    │   ├── void updatePath(string pathFile)
    │   ├── string getPath()
    │   └── string repeat(bool turn)
    ├── RegEdit.cs - RegEdit
    │   ├── void create(RegistryKey key, string keyName)
    │   ├── void delete(RegistryKey key, string keyName)
    │   ├── void createVariable(RegistryKey key, string keyName, string varName, object varValue)
    │   ├── object getValue(RegistryKey key, string keyName, string varName)
    │   ├── void deleteVariable(RegistryKey key, string keyName, string varName)
    │   ├── void editVariable(RegistryKey key, string keyName, string varName, object varValue)
    │   └── bool existsVariable(RegistryKey key, string keyName, string varName)
    ├── Zip.cs - Zip
    │   ├── void EncryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576)
    │   ├── void DecryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576)
    │   ├── void create(string pathFoler, string outputArchive)
    │   └── void unpacking(string pathArchive, string outputFolder)
    └── WinAPI.cs - WinAPI
        ├── Window
        │   ├── enum WindowStyles : uint
        │   ├── enum WindowStylesEx : uint
        │   ├── enum ShowWindowCommands : int
        │   ├── IntPtr Create(WindowStylesEx windowStyleEx, WindowStyles windowStyle, string className, string windowName, int x, int y, int width, int height)
        │   ├── bool Show(IntPtr hWindow, ShowWindowCommands command)
        │   ├── IntPtr Find(string className, string windowName)
        │   ├── bool Destroy(IntPtr hWnd)
        │   ├── bool Move(IntPtr hWindow, int x, int y, int width, int height)
        │   ├── bool Update(IntPtr hWindow)
        │   ├── bool SetText(IntPtr hWindow, string text)
        │   └── bool GetText(IntPtr hWnd, int maxLength)
        └── ConsoleWindow
            ├── enum WindowStyle : int
            ├── enum SCWindowStyle : uint
            ├── IntPtr getWindow()
            ├── Size GetFontSize()
            ├── void ModifyStyleControl(IntPtr hWnd, WindowStyle windowStyle);
            ├── void ModifyStyleControlSC(IntPtr hWnd, WindowStyle windowStyle);
            ├── void CursorVisibility(bool visible)
            ├── void ScrollVisibleFalse()
            └── void ScrollVisibleTrue()

Исключения

В данном пункте расписаны исключения которые вручную создаются. Данный список вы можете использовать для дальнейшей обработки исключений. Все ручные исключения выводятся в формате строки string. Как можно примерно обработать ручные исключения библиотеки расписано ниже списка.

[!WARNING] Данный список используется для исключений которые лично выставлялись. При работе некоторых методов могут возникнуть и другие исключения.

0x00001 - Промежуток времени равен нулю, что делает её бесполезной
0x00002 - Промежуток времени меньше или равен нулю
0x00003 - Поле или значение не может быть пустым
0x00004 - Указанного файла не существует
0x00005 - Нет подключения к интернету
0x00006 - Привышение установленного лимита

Возможная обработка (Пример):

try
{
    MultiAPI.Basic.writeMachine("Я шишибочка! :D", 0); // Используем "writeMachine" и используем значение "0" в аргументе "countdown", что вызывает исключение с кодом "0x00001"
}
catch (Exception ex)
{
    if (ex.Message == "0x00001") MultiAPI.Basic.terminate(1); // Если текст исключения равен "0x00001", то закрываем программу с кодом ошибки 1
}

Main.cs - Basic

В этом классе содержутся следущие методы:

int rnd(int startInt, int endInt);
void terminate(int errorCode);
string getCurrentFolder();
void writeMachine(string text, int countDown = 40, bool writeLine = true);

Код класса:

public static class Basic
{
   public static int rnd(int startInt, int endInt) {...}

   public static void terminate(int errorCode) {...}

   public static string getCurrentFolder() {...}

   public static void writeMachine(string text, int countDown = 40, bool writeLine = true) {...}
}

- rnd

int rnd(int startInt, int endInt);

startInt - Начальное значение

endInt - Конечное значение

Возврат:

Случайное значение от startInt до endInt

Пример:
int random;
random = MultiAPI.Basic.rnd(1,10);
Console.WriteLine(MultiAPI.Basic.rnd(1, 10));
Описание:

Метод выводит случайное значение от startInt до endInt.

Код:
public static int rnd(int startInt, int endInt)
{
    Random rnd = new Random(); // Создаём рандомайзер
    return rnd.Next(startInt, endInt); // Генерируем случайное число от startInt до endInt и возвращаем его
}

- terminate

void terminate(int errorCode);

errorCode - Код ошибки

Пример:
MultiAPI.Basic.terminate(0);
Описание:

Метод завершает работу программы с определённым кодом ошибки

Код:
public static void terminate(int errorCode) => Environment.Exit(errorCode); // Завершаем работу программы с определённым кодом ошибки. Использование "=>" уменьшает метод если используется лишь одна строка.

- getCurrentFolder

string getCurrentFolder();
Возврат:

Путь до папки с программой

Пример:
string path;
path = MultiAPI.Basic.getCurrentFolder();
Console.WriteLine(MultiAPI.Basic.getCurrentFolder);
Описание:

Метод возвращает путь к папке с программой

Код:
public static string getCurrentFolder() { return Environment.CurrentDirectory; } // Возвращает путь до папки с программой. Использование "{ }" в одной строке с выполнением одного действия уменьшает громосткость кода ради одного действия. Это почти как и "=>", но "=>" не работает с "return"

- writeMachine

void writeMachine(string text, int countDown = 40, bool writeLine = true);

text - Текст для вывода

countDown - Задержка между символами в миллисекундах (По умолчанию равно 40 миллисекунж)

writeLine - После завершения печати, перевести курсор на новую строку? (По умолчанию равно true (Да))

Пример:
MultiAPI.Basic.writeMachine("Hello World!");
MultiAPI.Basic.writeMachine("Hello World!", 100);
MultiAPI.Basic.writeMachine("Hello World!", 40, false);

[!NOTE] Если вы указываете значение в countDown, то строго указывайте натуральное число (больше 0)

Описание:

Метод печатает в терминал символы из текста с определённой задержкой.

Исключения:

Исключения: 0x00001, 0x00002 и 0x00003

Обработка: Исключения

Код:
public static void writeMachine(string text, int countDown = 40, bool writeLine = true)
{
    if (string.IsNullOrEmpty(text)) throw new Exception("0x00003"); // Если "text" пуст, то выдаём исключение "0x00003"
    if (countDown == 0) throw new Exception("0x00001"); // Если "countdown" (задержка между символами) равна 0, то выдаём исключение с текстом "0x00001"
    else if (countDown < 0) throw new Exception("0x00002"); // или Если "countdown" меньше 0, то выдаём исключение с текстом "0x00002"
    foreach (char c in text) // Разбираем текст на буквы
    {
        Console.Write(c); // Выводим букву в терминал
        Thread.Sleep(countDown); // Ожидаем указанное время из countdown в миллисекундах, перед тем как продолжить
    }
    if (writeLine) Console.WriteLine(); // Если "writeLine" равен "true", то выводим новую строку (Или переводим курсор на новую строку)
}

FTP.cs - FTP

В этом классе содержутся следущие методы:

FTP(string host, string userName, string password);
void upload(string localFullPath);
void download(string localPath);
void delete();
bool exists();

Код класса:

public class FTP
{
    private string _host;
    private string _userName;
    private string _password;

    public FTP(string host, string userName, string password) {...}

    public void upload(string localFullPath) {...}

    public void download(string localPath) {...}

    public void delete() {...}

    public bool exists() {...}

}

- FTP

FTP(string host, string userName, string password);

host - Путь до удалённого файла. Например: ftp://0.0.0.0:21/file.exmp

userName - Имя пользователя для аутентификации

password - Пароль для аутентификации

Пример:
MultiAPI.FTP newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
var newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
Описание:

Определяет переменные для дальнейшего соединения с FTP сервером

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public FTP(string host, string userName, string password)
{
    if (string.IsNullOrEmpty(host) || string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) throw new Exception("0x00003"); // Если "host" или "userName", или "password" равен пустоте, то выдаём исключение с текстом "0x00003"
    _host = host; // Устанавливаем значение для переменной "_host" в виде "host"
    _userName = userName; // Устанавливаем значение для переменной "_userName" в виде "userName"
    _password = password; // Устанавливаем значение для переменной "_password" в виде "password"
}

- upload

void upload(string localFullPath);

localFullPath - Локальный путь до файла

Пример:
MultiAPI.FTP newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
newFTP.upload("C:\\Folder\\newFile.txt");
Описание:

Отправляем файл на FTP сервер

Исключения:

Исключения: 0x00003, 0x00004

Обработка: Исключения

Код:
public void upload(string localFullPath)
{
    if (string.IsNullOrEmpty(localFullPath)) throw new Exception("0x00003"); // Если "localFullPath" пустой, то выдаём исключение "0x00003"
    if (!File.Exists(localFullPath)) throw new Exception("0x00004"); // Если файл по пути "localFullPath" не найден, то выдаём исключение "0x00004"

    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(_host); // Создаём соединение с "_host"

    request.Method = WebRequestMethods.Ftp.UploadFile; // Устанавливаем метод запроса как загрузка файла
    request.Credentials = new NetworkCredential(_userName, _password); // Устанавливаем учетные данные для аутентификации на сервере
    request.UsePassive = true; // Устанавливаем пассивный режим для передачи данных
    request.UseBinary = true; // Устанавливаем бинарный режим передачи данных
    request.KeepAlive = false; // Отключаем поддержание активного соединения

    using (Stream inputStream = File.OpenRead(localFullPath)) // Открываем поток для чтения содержимого локального файла
    using (Stream outputStream = request.GetRequestStream()) // Получаем поток для записи данных на FTP сервер
    {
        byte[] buffer = new byte[1024]; // Создаем буфер для чтения файла порциями
        int bytesRead = 0; // Переменная для хранения количества считанных байт
        while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0) outputStream.Write(buffer, 0, bytesRead); // Пишем порцию данных в поток для записи на сервер
    }
}

- download

void download(string localPath);

localPath - Путь до локального файла (Нового)

Пример:
MultiAPI.FTP newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
newFTP.download("C:\\Folder\\file.exmp");
Описание:

Сохраняет файл с сервера в файл "localPath"

Исключения:

Исключения: 0x00004

Обработка: Исключения

Код:
public void download(string localPath)
{
    if (string.IsNullOrEmpty(localPath)) throw new Exception("0x00003"); // Если "localPath" пустой, то выдаём исключение "0x00003"
    using (WebClient client = new WebClient()) // Создаём WEB-клиент
    {
        client.Credentials = new NetworkCredential(_userName, _password); // Устанавливаем учетные данные для аутентификации на сервере
        client.DownloadFile(_host, localPath); // Скачиваем файл "_host" в файл "localPath"
    }
}

- delete

void delete();
Пример:
MultiAPI.FTP newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
newFTP.delete();
Описание:

Удаляет файл с сервера

Код:
public void delete()
{
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(_host); // Создаём подключение у серверу
    request.Method = WebRequestMethods.Ftp.DeleteFile; // Устанавливаем метод запроса как удаление файла
    request.Credentials = new NetworkCredential(_userName, _password); // Устанавливаем учетные данные для аутентификации на сервере
    FtpWebResponse response = (FtpWebResponse)request.GetResponse(); // Получаем ответ от FTP сервера на запрос удаления файла
    response.Close(); // Закрываем ответ от сервера
}

- exists

bool exists();
Возврат:

true или false. true - если файл существует, false - если не существует.

Пример:
MultiAPI.FTP newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
Console.WriteLine(newFTP.exists());
MultiAPI.FTP newFTP = new MultiAPI.FTP("ftp://0.0.0.0:21/file.exmp", "root", "12345678");
bool fileExists = newFTP.exists();
Описание:

Проверяет, есть ли файл на сервере

Код:
public bool exists()
{
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(_host); // Создаем запрос к FTP серверу для получения даты и времени последней модификации файла
    request.Credentials = new NetworkCredential(_userName, _password); // Устанавливаем учетные данные для аутентификации на сервере
    request.Method = WebRequestMethods.Ftp.GetDateTimestamp; // Устанавливаем метод запроса как получение даты и времени последней модификации файла

    try { using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) return true; } // Если запрос к серверу выполнен успешно, возвращаем true
    catch (WebException ex) when (((FtpWebResponse)ex.Response).StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable) { return false; } // Если в ходе запроса произошли какие либо ошибки, то возвращаем false
}

Generator.cs - Generator

В этом классе содержутся следущие методы:

string GenPassword(int length);
string GenPassword(int length, string dictionary);

Код класса:

public static class Generator
{
  public static string GenPassword(int length) { ... }

  public static string GenPassword(int length, string dictionary) { ... }
}

- GenPassword

string GenPassword(int length);
string GenPassword(int length, string dictionary);

length - Длинна пароля dictionary - Список символов которые могут входить в пароль

Возврат:

Сгенерированный пароль

Пример:
string password = MultiAPI.Generator.GenPassword(18);
Console.WriteLine(MultiAPI.Generator.GenPassword(18));
string password = GenPassword(18, "abcdefghijklmnopqrstyvwxyz123456789");
Console.WriteLine(GenPassword(18, "abcdefghijklmnopqrstyvwxyz123456789"));
Описание:

Генерирует пароль с указанной длинной и возможностью указания своего списка символов

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static string GenPassword(int length)
{
    if (string.IsNullOrEmpty(Convert.ToString(length))) throw new Exception("0x00003"); // Если "length" пустой, то выдаём исключение "0x00003"

    const string chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@-+=%*&?$#"; // Стандартный словарь

    StringBuilder sb = new StringBuilder(); // Создаем объект StringBuilder для формирования пароля
    Random rnd = new Random(); // Создаем объект Random для генерации случайных чисел

    for (int i = 0; i < length; i++)
    {
        int index = rnd.Next(chars.Length); // Получаем случайный индекс символа из стандартного набора символов
        sb.Append(chars[index]); // Добавляем символ к паролю
    }
    return sb.ToString(); // Возвращаем итоговый пароль
}

public static string GenPassword(int length, string dictionary)
{
    if (string.IsNullOrEmpty(Convert.ToString(length)) || string.IsNullOrEmpty(dictionary)) throw new Exception("0x00003"); // Если "length" или "dictionary" пустой, то выдаём исключение "0x00003"
    StringBuilder sb = new StringBuilder(); // Создаем объект StringBuilder для формирования пароля
    Random rnd = new Random(); // Создаем объект Random для генерации случайных чисел

    for (int i = 0; i < length; i++)
    {
        int index = rnd.Next(dictionary.Length); // Получаем случайный индекс символа из пользовательского набора символов
        sb.Append(dictionary[index]); // Добавляем символ к паролю
    }
    return sb.ToString(); // Возвращаем итоговый пароль
}

INI.cs - INI

В этом классе содержутся следущие методы:

INI(string iniFile);
string getValue(string section, string variable);
void setValue(string section, string variable, string text);
bool existVariable(string section, string variable);
void deleteVariable(string section, string variable);
void deleteAllVariables(string section);

Код класса:

public class INI
{
    private string _iniFile;

    public INI(string iniFile) { ... }

    public string getValue(string section, string variable) { ... }

    public void setValue(string section, string variable, string text) { ... }

    public bool existVariable(string section, string variable) { ... }

    public void deleteVariable(string section, string variable) { ... }

    public void deleteAllVariables(string section) { ... }
}

- INI

INI(string iniFile);

iniFile - Путь к ini файлу

Пример:
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
var ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
Описание:

Установка значения для переменной, для дальнейшего взаиможействия с INI файлом

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public INI(string iniFile)
{
    if (string.IsNullOrEmpty(iniFile)) throw new Exception("0x00003"); // Если "iniFile" пустой, то выдаём исключение "0x00003"
    if (!File.Exists(iniFile)) File.Create(iniFile).Close(); // Если файла "iniFile" не существует, то создаём его.
    _iniFile = iniFile; // Для "_iniFile" выставляем значение "iniFile"
}

- getValue

string getValue(string section, string variable);

section - Секция

variable - Переменная в секции

Возврат:

Значение переменной variable из секции section

Пример:
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
ini.getValue("NewSection", "FirstVar");
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
Console.WriteLine(ini.getValue("NewSection", "FirstVar"));
Описание:

Получает значение из переменной в секции

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public string getValue(string section, string variable)
{
    if (string.IsNullOrEmpty(section) || string.IsNullOrEmpty(variable)) throw new Exception("0x00003"); // Если "section" или "variable" пуст, то выдаём исключение "0x00003"
    FileIniDataParser parser = new FileIniDataParser(); // Создаём парсер
    IniData data = parser.ReadFile(_iniFile); // Читаем файл с помощью парсера
    return data[section][variable]; // Возвращаем значение переменной
}

- setValue

void setValue(string section, string variable, string text);

section - Секция

variable - Переменная в секции

text - Текст

Пример:
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
ini.setValue("NewSection", "FirstVar", "FirstTextttttt");
Описание:

Устанавливаем значение в переменной из секции

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public void setValue(string section, string variable, string text)
{
    if (string.IsNullOrEmpty(section) || string.IsNullOrEmpty(variable) || string.IsNullOrEmpty(text)) throw new Exception("0x00003"); // Если "section", "variable" или "text" пуст, то выдаём исключение "0x00003"
    FileIniDataParser parser = new FileIniDataParser(); // Создаём парсер
    IniData data = parser.ReadFile(_iniFile); // Читаем файл с помощью парсера
    data[section][variable] = text; // Пишем новый текст для переменной
    parser.WriteFile(_iniFile, data); // Записываем в файл новый текст для переменной
}

- existsVariable

bool existVariable(string section, string variable);

section - Секция

variable - Переменная в секции

Возврат:

true или false. true - если переменная существует, false - если не существует

Пример:
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
ini.existsVariable("NewSection", "FirstVar");
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
Console.WriteLine(ini.existsVariable("NewSection", "FirstVar"));
Описание:

Проверяет, есть ли переменная в секции

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public bool existVariable(string section, string variable)
{
    if (string.IsNullOrEmpty(section) || string.IsNullOrEmpty(variable)) throw new Exception("0x00003"); // Если "section" или "variable" пуст, то выдаём исключение "0x00003" 
    FileIniDataParser parser = new FileIniDataParser(); // Создаём парсер
    IniData data = parser.ReadFile(_iniFile); // Читаем файл с помощью парсера
    return data[section].ContainsKey(variable); // Возвращаем "true" или "false", если есть переменная
}

- deleteVariable

void deleteVariable(string section, string variable);

section - Секция

variable - Переменная в секции

Пример:
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
ini.deleteVariable("NewSection", "FirstVar");
Описание:

Удаляет переменную в секции

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public void deleteVariable(string section, string variable)
{
    if (string.IsNullOrEmpty(section) || string.IsNullOrEmpty(variable)) throw new Exception("0x00003"); // Если "section" или "variable" пуст, то выдаём исключение "0x00003" 
    FileIniDataParser parser = new FileIniDataParser(); // Создаём парсер
    IniData data = parser.ReadFile(_iniFile); // Читаем файл с помощью парсера
    data[section].RemoveKey(variable); // Удаляем переменную
    parser.WriteFile(_iniFile, data); // Записываем действие в файл (Удаляем переменную в файле)
}

- deleteAllVariables

void deleteAllVariables(string section);

section - Секция

Пример:
MultiAPI.INI ini = new MultiAPI.INI("C:\\Folder\\iniFile.ini");
ini.deleteAllVariables("NewSection");
Описание:

Удаляем все переменные из секции

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public void deleteAllVariables(string section)
{
    if (string.IsNullOrEmpty(section)) throw new Exception("0x00003"); // Если "section" пуст, то выдаём исключение "0x00003" 
    FileIniDataParser parser = new FileIniDataParser(); // Создаём парсер
    IniData data = parser.ReadFile(_iniFile); // Читаем файл с помощью парсера
    data[section].RemoveAllKeys(); // Удаляем все переменные из секции
    parser.WriteFile(_iniFile, data); // Записываем действие в файл (Удаляем все переменные в файле)
}

Internet.cs - Internet

В этом классе содержутся следущие методы:

bool TestConnection();
bool ping(string url);

Код класса:

public static class Internet
{
    public static bool TestConnection() { ... }

    public static bool ping(string url) { ... }
}

- TestConnection

bool TestConnection();
Возврат:

Возвращает true, если соединение с Интернетом установлено, иначе false.

Пример:
bool isConnected = MultiAPI.Internet.TestConnection();

if (isConnected) Console.WriteLine("Connection established.");
else Console.WriteLine("Unable to establish connection.");
Описание:

Проверяет наличие соединения с Интернетом путем отправки запроса на ping хоста "google.com".

Код:
public static bool TestConnection()
{
    try
    {
        using (var ping = new Ping()) // Создаем экземпляр класса Ping с помощью using, чтобы гарантировать освобождение ресурсов
        {
            var result = ping.Send("google.com", 1000); // Посылаем пинг на google.com с таймаутом 1000 миллисекунд
            return result.Status == IPStatus.Success; // Возвращаем true, если ответ получен успешно, иначе false
        }
    }
    catch { return false; } // Если произошла ошибка во время пинга, возвращаем false
}

- ping

bool ping(string url);

url - Адрес для проверки доступности

Возврат:

Возвращает true, если удалось установить соединение с указанным адресом, иначе false

Пример:
bool isReachable = MultiAPI.Internet.ping("example.com");
if (isReachable) Console.WriteLine("Host is reachable.");
else Console.WriteLine("Host is not reachable.");
Описание:

Проверяет доступность указанного адреса путем отправки запроса на ping

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static bool ping(string url)
{
    if (string.IsNullOrEmpty(url)) throw new Exception("0x00003"); // Если "URL" пуст, выбрасываем исключение с кодом "0x00003"

    try
    {
        using (var ping = new Ping()) // Создаем экземпляр класса Ping с помощью using, чтобы гарантировать освобождение ресурсов
        {
            var result = ping.Send(url, 1000); // Посылаем пинг на указанный URL с таймаутом 1000 миллисекунд
            return result.Status == IPStatus.Success; // Возвращаем true, если ответ получен успешно, иначе false
        }
    }
    catch { return false; } // Если произошла ошибка во время пинга, возвращаем false
}

Mail.cs - Mail

В этом классе содержутся следущие методы:

void send(string fromEmail, string fromName, string toEmail, string subject, string textOrHtml, string smtpServer, int smtpPort, string smtpPasswordMail);

Код класса:

public static class Mail
{
    public static void send(string fromEmail, string fromName, string toEmail, string subject, string textOrHtml, string smtpServer, int smtpPort, string smtpPasswordMail) { ... }
}

- send

void send(string fromEmail, string fromName, string toEmail, string subject, string textOrHtml, string smtpServer, int smtpPort, string smtpPasswordMail);

fromEmail - Адрес электронной почты отправителя

fromName - Имя отправителя

toEmail - Адрес электронной почты получателя

subject - Тема письма

textOrHtml - Текст письма или HTML-разметка

smtpServer - SMTP-сервер

smtpPort - Порт SMTP-сервера

smtpPasswordMail - Пароль электронной почты отправителя

Пример:
MultiAPI.Mail.send("sender@example.com", "Sender Name", "recipient@example.com", "Test Subject", "This is a test email", "smtp.example.com", 587, "password");
Описание:

Отправляет электронное письмо с указанными параметрами

Исключения:

Исключения: 0x00003 и 0x00005

Обработка: Исключения

Код:
public static void send(string fromEmail, string fromName, string toEmail, string subject, string textOrHtml, string smtpServer, int smtpPort, string smtpPasswordMail)
{
    if (string.IsNullOrEmpty(fromEmail) || string.IsNullOrEmpty(fromName) || string.IsNullOrEmpty(toEmail) || string.IsNullOrEmpty(subject) || string.IsNullOrEmpty(textOrHtml) || string.IsNullOrEmpty(smtpServer) || string.IsNullOrEmpty(Convert.ToString(smtpPort)) || string.IsNullOrEmpty(smtpPasswordMail)) throw new Exception("0x00003"); // Если какой-либо параметр пуст, выбрасываем исключение с кодом "0x00003"
    // Проверяем доступность интернета
    if (Internet.TestConnection())
    {
        // Создаем объекты для адресов отправителя и получателя
        MailAddress from = new MailAddress(fromEmail, fromName);
        MailAddress to = new MailAddress(toEmail);
        MailMessage m = new MailMessage(from, to); // Создаем объект сообщения
        m.Subject = subject; // Задаем тему письма
        m.Body = textOrHtml; // Задаем текст письма
        m.IsBodyHtml = true; // Устанавливаем, что тело письма содержит HTML
        SmtpClient smtp = new SmtpClient(smtpServer, smtpPort); // Создаем клиент SMTP
        smtp.Credentials = new NetworkCredential(fromEmail, smtpPasswordMail); // Устанавливаем учетные данные для аутентификации на SMTP-сервере
        smtp.EnableSsl = true; // Включаем SSL для защищенного подключения
        smtp.Send(m); // Отправляем сообщение
    }
    else throw new Exception("0x00005"); // Если нет подключения к интернету, выбрасываем исключение с кодом "0x00005"
}

Music.cs - Music

В этом классе содержутся следущие методы:

Music(string pathFile, bool autoStart = false);
void play();
void stop();
void pause();
void setVolume(int volume);
int getVolume();
double getDuration();
void setPosition(double position);
double getPosition();
void updatePath(string pathFile);
string getPath();
void repeat(bool turn);

Код класса:

public class Music
{
    private static WindowsMediaPlayer musicPlayer = new WindowsMediaPlayer();

    public Music(string pathFile, bool autoStart = false) { ... }

    public void play() => musicPlayer.controls.play();

    public void stop() => musicPlayer.controls.stop();

    public void pause() => musicPlayer.controls.pause();

    public void setVolume(int volume) { ... }

    public int getVolume() => musicPlayer.settings.volume;

    public double getDuration() => musicPlayer.currentMedia.duration;

    public void setPosition(double position) { ... }

    public double getPosition() => musicPlayer.controls.currentPosition;

    public void updatePath(string pathFile) { ... }

    public string getPath() => musicPlayer.URL;

    public void repeat(bool turn) => musicPlayer.settings.setMode("loop", turn);
}

[!WARNING] Такие функции как Music(string pathFile, bool autoStart = false);, string getPath(); и void repeat(bool turn); не работают в версиях ниже 0.1.2.100! При попытке использовании данных функций, пожалуйста, убедитесь, что у вас стоит версия 0.1.2.100 и выше.

- Music

Music(string pathFile);

pathFile - Путь до файла музыки

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
var music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
Описание:

Создаёт конструктор для взаимодействия с музыкальным файлом

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public Music(string pathFile, bool autoStart = false)
{
    if (string.IsNullOrEmpty(pathFile)) throw new Exception("0x00003"); // Если "pathFile" пуст, то выдаём исключение "0x00003" 
    musicPlayer.URL = pathFile; // Устанавливаем ссылку для плеера
    musicPlayer.settings.autoStart = autoStart; // Устанавливаем значение авто-старта
}
- play
void play();
Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.play();
Описание:

Воспроизводит или продоолжает воспроизведение музыкального файла

Код:
public void play() => musicPlayer.controls.play(); // Воспроизводим или продолжнаем воспроизведение музыкального файла
- stop
void stop();
Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.stop();
Описание:

Останавливает воспроизведение музыкального файла и переводит курсор на начало

Код:
public void stop() => musicPlayer.controls.stop(); // Останавливаем воспроизведение и переводим курсор на начало

- pause

void pause();
Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.pause();
Описание:

Приостанавливает возспроизведение музыкального файла. При искользовании ' play(); ' можно продолжить воспроизведение файла

Код:
public void pause() => musicPlayer.controls.pause(); // Приостанавливаем воспроизведение

- setVolume

void setVolume(int volume);

volume - Громкость (Максимальное значение: 100, Минимальное значение: 0)

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.setVolume(85);
Описание:

Устанавливает громкость воспроизведения музыкального файла

Исключения:

Исключения: 0x00003, 0x00006

Обработка: Исключения

Код:
public void setVolume(int volume) 
{ 
    if (volume < 0 || volume > 100) throw new Exception("0x00006"); // Если "volume" меньше "0" или больше "100", то выдаём исключение "0x00006"
    if (string.IsNullOrEmpty(Convert.ToString(volume))) throw new Exception("0x00003"); // Если "volume" пуст, то выдаём исключение "0x00003"
    musicPlayer.settings.volume = volume; // Устанавливаем громкость
}

- getVolume

int getVolume();
Возврат:

Громкость в формате целочисленного типа int. От 0 до 100

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
int volume = music.getVolume();
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
Console.WriteLine(music.getVolume());
Описание:

Получение текущей громкости воспроизводимого музыкального файла

Код:
public int getVolume() => musicPlayer.settings.volume; // Возвращаем громкость

- getDuration()

double getDuration();

[!WARNING] В данный момент документации на данный метод отсутствует!

[!NOTE] Т.к. документация на данный метод отсутствует, ниже будет приведён код из файла "Music.cs" где взаимодействуется данный метод. Приносим свои извинения за приченённые неудобства.

using System;
using WMPLib;

/* 
  =================- INFO -===================
 * File:         | Music.cs
 * Class:        | Music
 * Project:      | MultiAPI
 * Author:       | Plufik
 * Version:      | 0.0.0.0
 * VerType:      | major_version.minor_version.patch_version.builds
 * Main file:    | Main.cs
 * [OPEN SOURCE] | +True
 * [CONSTRUCTOR] | +True
  ============================================
 */

namespace MultiAPI
{
    #region CLASS | Music
    /// <summary>
    /// Действия с музыкальными файлами
    /// </summary>
    public class Music
    {
        #region WindowsMediaPlayer | musicPlayer
        /// <summary>
        /// Музыкальная конструкция
        /// </summary>
        private static WindowsMediaPlayer musicPlayer = new WindowsMediaPlayer();
        #endregion

        #region METHOD-Music | Music
        /// <summary>
        /// Определение конструкции. ( Music nameVar = new Music("C:\\Path\\To\\Music.mp3") )
        /// </summary>
        /// <param name="pathFile">Полный путь до музыкального файла</param>
        public Music(string pathFile)
        {
            if (string.IsNullOrEmpty(pathFile)) throw new Exception("0x00003");
            musicPlayer.URL = pathFile;
        }
        #endregion

        // ...

        #region METHOD-DOUBLE | getDuration
        /// <summary>
        /// Получение длительности музыкального файла из конструкции
        /// </summary>
        /// <returns>Длительность музыкального файла</returns>
        public double getDuration() => musicPlayer.currentMedia.duration;
        #endregion

        // ...
    }
    #endregion
}

- setPosition

void setPosition(double position);

position - Позиция в музыкальном файле. (Максимальное значение: 1.0, Минимальное значение: 0.0)

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.setPosition(0.7);
Описание:

Устанавливает позицию курсора в музыкальном файле

Исключения:

Исключения: 0x00003, 0x00006

Обработка: Исключения

Код:
public void setPosition(double position)
{
    if (position < 0.0 || position > 1.0) throw new Exception("0x00006"); // Если "position" меньше "0.0" или больше "1.0", то выдаём исключение "0x00006"
    if (string.IsNullOrEmpty(Convert.ToString(position))) throw new Exception("0x00003"); // Если "position" пуст, то выдаём исключение "0x00003"
    musicPlayer.controls.currentPosition = position; // Устанавливаем позицию
}

- getPosition

double getPosition();
Возврат:

Позиция курсора в музкальном файле

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
double position = music.getPosition();
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
Console.WriteLine(music.getPosition());
Описание:

Возвращает позицию курсора в музыкальном файле в формате double (От 0.0, до 1.0)

Код:
public double getPosition() => musicPlayer.controls.currentPosition; // Возвращаем позицию курсора (От 0.0, до 1.0)

- updatePath

void updatePath(string pathFile);
Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.updatePath("C:\\Folder\\testMusicFile2.mp3");
Описание:

Устанавливает новый музыкальный файл в плеер

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public void updatePath(string pathFile)
{
    if (string.IsNullOrEmpty(pathFile)) throw new Exception("0x00003"); // Если "pathFile" пуст, то выдаём исключение "0x00003"
    musicPlayer.URL = pathFile; // Устанавливаем новый путь до музыкального файла
}

- getPath

string getPath()

[!NOTE] Добавлено в версии "0.1.2.96"

Возврат:

Путь до музыкального файла установленного в данный момент

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
string path = music.getPath();
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
Console.WriteLine(music.getPath());
Описание:

Получает и возвращает путь до музыкального файла установленного в данный момент

Код:
public string getPath() => musicPlayer.URL; // Возвращаем путь до музыкального файла

- repeat

void repeat(bool turn);

turn - true или false. true - включить повтор, false - выключить повтор

[!NOTE] Добавлено в версии "0.1.2.100"

Пример:
MultiAPI.Music music = new MultiAPI.Music("C:\\Folder\\testMusicFile.mp3");
music.repeat(true);
Описание:

Устанавливает значение turn для повтора песни.

Код:
public void repeat(bool turn) => musicPlayer.settings.setMode("loop", turn);

RegEdit.cs - RegEdit

В этом классе содержутся следущие методы:

void create(RegistryKey key, string keyName);
void delete(RegistryKey key, string keyName);
void createVariable(RegistryKey key, string keyName, string varName, object varValue);
object getValue(RegistryKey key, string keyName, string varName);
void deleteVariable(RegistryKey key, string keyName, string varName);
void editVariable(RegistryKey key, string keyName, string varName, object varValue);
bool existsVariable(RegistryKey key, string keyName, string varName);

Код класса:

public static class RegEdit
{
    public static void create(RegistryKey key, string keyName) { ... }

    public static void delete(RegistryKey key, string keyName) { ... }

    public static void createVariable(RegistryKey key, string keyName, string varName, object varValue) { ... }

    public static object getValue(RegistryKey key, string keyName, string varName) { ... }

    public static void deleteVariable(RegistryKey key, string keyName, string varName) { ... }

    public static void editVariable(RegistryKey key, string keyName, string varName, object varValue) { ... }

    public static bool existsVariable(RegistryKey key, string keyName, string varName) { ... }
}

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

- create

void create(RegistryKey key, string keyName);

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название для под-ключа

Пример:
MultiAPI.RegEdit.create(Registry.LocalMachine, "keeeeey")
Описание:

Создаёт под-ключ в корневом ключе

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static void create(RegistryKey key, string keyName)
{
    if (string.IsNullOrEmpty(keyName)) throw new Exception("0x00003"); // Если переменная "keyName" пуста, то выдаём исключение "0x00003"
    key.CreateSubKey(keyName); // Открываем корневой ключ и создаём под-ключ
    key.Close(); // Закрываем корневой ключ
}

- delete

void delete(RegistryKey key, string keyName)

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название под-ключа

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

Пример:
MultiAPI.RegEdit.delete(Registry.LocalMachine, "keeeeey")
Описание:

Удаляет под-ключ в корневом ключе

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static void delete(RegistryKey key, string keyName)
{
    if (string.IsNullOrEmpty(keyName)) throw new Exception("0x00003"); // Если переменная "keyName" пуста, то выдаём исключение "0x00003"
    key.DeleteSubKeyTree(keyName); // Открываем корневой ключ и удаляем под-ключ
    key.Close(); // Закрываем корневой ключ
}

- createVariable

void createVariable(RegistryKey key, string keyName, string varName, object varValue);

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название под-ключа

varName - Название новой переменной в под-ключе

varValue - Значение для новой переменной

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

Пример:
MultiAPI.RegEdit.createVariable(Registry.LocalMachine, "keeeeey", "variable", "HeHeHE")
Описание:

Создание переменной в под-ключе

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static void createVariable(RegistryKey key, string keyName, string varName, object varValue)
{
    if (string.IsNullOrEmpty(keyName) || string.IsNullOrEmpty(varName) || varValue == null) throw new Exception("0x00003"); // Если "keyName", "varName" или "varValue" пуст, то выводим исключение "0x00003"
    RegistryKey key2 = key.OpenSubKey(keyName, true); // Открываем под-ключ из корневого ключа
    key2.SetValue(varName, varValue); // Создаём переменную со значением
    key.Close(); // Закрываем под-ключ
    key2.Close(); // Закрываем корневой ключ
}

- getValue

getValue(RegistryKey key, string keyName, string varName)

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название под-ключа

varName - Название переменной в под-ключе

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

Возврат:

Значение переменной varName в под-ключе keyName, в формате object

Пример:
string value = MultiAPI.RegEdit.getValue(Registry.LocalMachine, "keeeeey", "variable");
int value = MultiAPI.RegEdit.getValue(Registry.LocalMachine, "keeeeey", "variable");
Описание:

Получение значение переменной в под-ключе

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static object getValue(RegistryKey key, string keyName, string varName)
{
    if (string.IsNullOrEmpty(keyName) || string.IsNullOrEmpty(varName)) throw new Exception("0x00003"); // Если переменная "keyName" или "varName" пуста, то выдаём исключение "0x00003"
    RegistryKey key2 = key.OpenSubKey(keyName); // Открываем под-ключ из корневого ключа 
    object value = key2.GetValue(varName); // Получаем значение
    key.Close(); // Закрываем корневой ключ
    key2.Close(); // Закрываем под-ключ
    return value; // Возвращаем значение 
}

- deleteVariable

void deleteVariable(RegistryKey key, string keyName, string varName);

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название под-ключа

varName - Название переменной в под-ключе

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

Пример:
MultiAPI.RegEdit.deleteVariable(Registry.LocalMachine, "keeeeey", "variable");
Описание:

Удаляет переменную из под-ключа

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static void deleteVariable(RegistryKey key, string keyName, string varName)
{
    if (string.IsNullOrEmpty(keyName) || string.IsNullOrEmpty(varName)) throw new Exception("0x00003"); // Если переменная "keyName" или "varName" пуста, то выдаём исключение "0x00003"
    RegistryKey key2 = key.OpenSubKey(keyName, true); // Открываем под-ключ из корневого ключа 
    key2.DeleteValue(varName); // Удаляем переменную
    key.Close(); // Закрываем корневой ключ
    key2.Close(); // Закрываем под-ключ
}

- editVariable

void editVariable(RegistryKey key, string keyName, string varName, object varValue);

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название под-ключа

varName - Название переменной в под-ключе

varValue - Новое значение для переменной

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

[!NOTE] Фактически, это и есть метод createVariable, но данный метод проще для понимания.

Пример:
MultiAPI.RegEdit.editVariable(Registry.LocalMachine, "keeeeey", "variable", "HeHeHE")
Описание:

Редактирование переменной в под-ключе

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static void editVariable(RegistryKey key, string keyName, string varName, object varValue)
{
    if (string.IsNullOrEmpty(keyName) || string.IsNullOrEmpty(varName) || varValue == null) throw new Exception("0x00003"); // Если "keyName", "varName" или "varValue" пуст, то выводим исключение "0x00003"
    RegistryKey key2 = key.OpenSubKey(keyName, true); // Открываем под-ключ из корневого ключа
    key2.SetValue(varName, varValue); // Изменяем значение переменной
    key.Close(); // Закрываем под-ключ
    key2.Close(); // Закрываем корневой ключ
}

- existsVariable

bool existsVariable(RegistryKey key, string keyName, string varName);

key - Корневой ключ (Выбирайте с помощью "Registry". Например: "Registry.LocalMachine")

keyName - Название под-ключа

varName - Название переменной в под-ключе

[!WARNING] Перед использованием класса RegEdit импортируйте в свой код библиотеку Microsoft.Win32. using Microsoft.Win32;

Возврат:

true или false. true - Если переменная существует, false - Если переменная НЕ существует

Пример:
bool exists = MultiAPI.RegEdit.existsVariable(Registry.LocalMachine, "keeeeey", "variable");
bool exists = MultiAPI.RegEdit.existsVariable(Registry.LocalMachine, "keeeeey", "variable");
Console.WriteLine(exists);
Описание:

Проверяет, существует ли переменная

Исключения:

Исключения: 0x00003

Обработка: Исключения

Код:
public static bool existsVariable(RegistryKey key, string keyName, string varName)
{
    if (string.IsNullOrEmpty(keyName) || string.IsNullOrEmpty(varName)) throw new Exception("0x00003"); // Если "keyName", "varName" или "varValue" пуст, то выводим исключение "0x00003"
    RegistryKey key2 = key.OpenSubKey(keyName); // Открываем под-ключ из корневого ключа
    if (key2 == null) return false; // Если "key2" равен "null", то возвращаем "false"
    else if (key2.GetValue(varName) == null) return false; // Если полученное значение из переменной "varName" равно "null", то возвращаем "false"
    else return true; // Если ничего из перечисленного не равно "null", то возвращаем "true"
}

Zip.cs - Zip

В этом классе содержутся следущие методы:

void EncryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576);
void DecryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576);
void create(string pathFoler, string outputArchive);
void unpacking(string pathArchive, string outputFolder);

Код класса:

public static class Zip
{
  public static void EncryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576) { ... }

  public static void DecryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576) { ... }

  public static void create(string pathFoler, string outputArchive) { ... }

  public static void unpacking(string pathArchive, string outputFolder) { ... }
}

- EncryptFile

void EncryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576);

inputFile - Входной файл

outputFile - Выходной файл (Зашифрованный)

password - Пароль на зашифрованный файл (Минимальное кол-во символов: 4)

BufferSize - Размер буфера (Минимальное значение: 256) (Значение по стандарту: 104576)

[!WARNING] При дешифровки размер буфера должен совпадать с буфером размер которого указывался во время шифровки

Привер:
MultiAPI.Zip.EncryptFile("C:\\FileToEncrypt.txt", "C:\\EncFile.e_txt", "1234");
MultiAPI.Zip.EncryptFile("C:\\FileToEncrypt.txt", "C:\\EncFile.e_txt", "1234", 256);
Описание:

Шифрует любой файл с указанным размером буфера и устанавливает на него пароль

Исключения:

Исключения: 0x00003, 0x00004 и 0x00006

Обработка: Исключения

Код:
public static void EncryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576)
{
    if (string.IsNullOrEmpty(inputFile) || string.IsNullOrEmpty(outputFile) || string.IsNullOrEmpty(password)) throw new Exception("0x00003"); // Если inputFile или outputFile, или password пуст, то выдём исключение "0x00003"
    if (!File.Exists(inputFile)) throw new Exception("0x00004"); // Если файл inputFile не существует, то выдаём исключение "0x00004"
    if (password.Length < 4 || BufferSize < 256) throw new Exception("0x00006"); // Если лимиты нарушены, то выдаём исключение "0x00006"
    UnicodeEncoding UE = new UnicodeEncoding(); // Создание объекта UnicodeEncoding для кодирования пароля в байты
    byte[] key = UE.GetBytes(password); // Получение байтового представления пароля

    RijndaelManaged RMCrypto = new RijndaelManaged(); // Создание объекта RijndaelManaged для шифрования данных
    RMCrypto.Mode = CipherMode.CBC; // Установка режима шифрования на CBC

    byte[] iv = RMCrypto.IV; // Получение инициализационного вектора (IV) из RijndaelManaged

    using (FileStream fsCrypt = new FileStream(outputFile, FileMode.Create)) // Создание потока записи для файла, в который будет записан IV и зашифрованные данные
    {
        fsCrypt.Write(iv, 0, iv.Length); // Запись IV в начало файла

        using (CryptoStream cs = new CryptoStream(fsCrypt, RMCrypto.CreateEncryptor(key, iv), CryptoStreamMode.Write)) // Создание CryptoStream для шифрования данных с использованием ключа и IV
        {
            using (FileStream fsIn = new FileStream(inputFile, FileMode.Open)) // Создание потока чтения для входного файла
            {
                byte[] buffer = new byte[BufferSize]; // Создание буфера
                int read;

                while ((read = fsIn.Read(buffer, 0, buffer.Length)) > 0) cs.Write(buffer, 0, read); // Чтение данных из входного файла и их шифрование, запись зашифрованных данных в выходной файл
            }
        }
    }
}

- DecryptFile

void DecryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576);

inputFile - Входной файл (Зашифрованный)

outputFile - Выходной файл (Дешифрованный)

password - Пароль для снятия шифрования (Минимальное кол-во символов: 4)

BufferSize - Размер буфера (Минимальное значение: 256) (Значение по стандарту: 104576)

[!WARNING] При дешифровки размер буфера должен совпадать с буфером размер которого указывался во время шифровки

Привер:
MultiAPI.Zip.DecryptFile("C:\\EncFile.e_txt", "C:\\FileToEncrypt.txt", "1234");
MultiAPI.Zip.DecryptFile("C:\\EncFile.e_txt", "C:\\FileToEncrypt.txt", "1234", 256);
Описание:

Дешифрует файл с указанным буфером и паролем

Исключения:

Исключения: 0x00003, 0x00004 и 0x00006

Обработка: Исключения

Код:
public static void DecryptFile(string inputFile, string outputFile, string password, int BufferSize = 104576)
{
    if (string.IsNullOrEmpty(inputFile) || string.IsNullOrEmpty(outputFile) || string.IsNullOrEmpty(password)) throw new Exception("0x00003"); // Если inputFile или outputFile, или password пуст, то выдём исключение "0x00003"
    if (!File.Exists(inputFile)) throw new Exception("0x00004"); // Если файл inputFile не существует, то выдаём исключение "0x00004"
    if (password.Length < 4 || BufferSize < 256) throw new Exception("0x00006"); // Если лимиты нарушены, то выдаём исключение "0x00006"
    UnicodeEncoding UE = new UnicodeEncoding(); // Создание объекта UnicodeEncoding для кодирования пароля в байты
    byte[] key = UE.GetBytes(password); // Получение байтового представления пароля
    
    RijndaelManaged RMCrypto = new RijndaelManaged(); // Создание объекта RijndaelManaged для расшифровки данных
    RMCrypto.Mode = CipherMode.CBC; // Установка режима шифрования на CBC (Cipher Block Chaining)
    
    byte[] iv = new byte[16]; // Создание массива для хранения инициализационного вектора (IV)
    
    using (FileStream fsCrypt = new FileStream(inputFile, FileMode.Open)) // Создание потока чтения для входного зашифрованного файла
    {
        fsCrypt.Read(iv, 0, iv.Length); // Чтение инициализационного вектора из начала зашифрованного файла
    
        using (CryptoStream cs = new CryptoStream(fsCrypt, RMCrypto.CreateDecryptor(key, iv), CryptoStreamMode.Read)) // Создание CryptoStream для расшифровки данных с использованием ключа и IV
        {
            using (FileStream fsOut = new FileStream(outputFile, FileMode.Create)) // Создание потока записи для выходного расшифрованного файла
            {
                byte[] buffer = new byte[BufferSize]; // Создание буфера
                int read;
    
                while ((read = cs.Read(buffer, 0, buffer.Length)) > 0) fsOut.Write(buffer, 0, read); // Чтение расшифрованных данных из CryptoStream и запись их в выходной файл
            }
        }
    }
}

- create

void create(string pathFoler, string outputArchive);

pathFolder - Путь до запаковываемой папки

outputArchive - Выходной файл

Пример:
MultiAPI.Zip.create("C:\\AIFolder", "C:\\okay.zip")
Исключения:

Исключения: 0x00003 и 0x00004

Обработка: Исключения

Описание:

Создаёт архив из папки

Код:
public static void create(string pathFoler, string outputArchive)
{
    if (string.IsNullOrEmpty(pathFoler) || string.IsNullOrEmpty(outputArchive)) throw new Exception("0x00003"); // Если pathFolder или outputArchive пуст, то выдаём исключение "0x00003"
    if (Directory.Exists(pathFoler)) ZipFile.CreateFromDirectory(pathFoler, outputArchive); // Если pathFolder есть, то создаём архив из папки
    else throw new Exception("0x00004"); // Если pathFolder нету, то выдаём исключение "0x00004"
}

- unpacking

unpacking(string pathArchive, string outputFolder);

pathArchive - Путь до архива

outputFolder - Папка в которую распакуется архив

[!NOTE] Архив должен быть без пароля, иначе он не распакуется

Пример:
MultiAPI.Zip.unpacking("C:\\okay.zip", "C:\\AIFolder")
Исключения:

Исключения: 0x00003 и 0x00004

Обработка: Исключения

Описание:

Создаёт архив из папки

Код:
public static void unpacking(string pathArchive, string outputFolder)
{
    if (string.IsNullOrEmpty(pathArchive) || string.IsNullOrEmpty(outputFolder)) throw new Exception("0x00003"); // Если pathArchive или outputFolder пуст, то выдаём исключение "0x00003"
    if (File.Exists(pathArchive) && Directory.Exists(outputFolder)) ZipFile.ExtractToDirectory(pathArchive, outputFolder); // Если pathFolder и outputFolder существует, то распаковываем архив в папку
    else throw new Exception("0x00004"); // Если pathFolder и outputFolder нету, то выдаём исключение "0x00004"
}
Product Compatible and additional computed target framework versions.
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.4.212 87 12/6/2024
0.1.3.211 87 11/26/2024
0.1.3.210 93 11/20/2024
0.1.3.205 101 7/24/2024
0.1.3.200 106 7/19/2024
0.1.2.135 120 4/28/2024
0.1.2.101 126 3/27/2024
0.1.2.94 127 3/8/2024
0.1.1.90 140 2/26/2024
0.1.1.89 130 2/26/2024
0.1.1.88 128 2/26/2024
0.1.1.86 121 2/26/2024
0.1.1.53 135 2/25/2024

Summary of changes made in this release of the package.