MultiAPI_Lib 0.1.2.135
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
<PackageReference Include="MultiAPI_Lib" Version="0.1.2.135" />
paket add MultiAPI_Lib --version 0.1.2.135
#r "nuget: MultiAPI_Lib, 0.1.2.135"
// 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 -
MultiAPI - Это библиотека и сборка разного ПО (Далее "Библиотека") для разработчиков. Она содержит множество функций чтобы ускорить разработку ПО. Данная библиотека усовершенствованная версия библиотеки MultiLib. MultiAPI подойдёт как начинающим разработчикам, так и профессиональным разработчикам ПО.
Если вам понравился данный проект, то поставьте пожалуйста звезду на проекте, на . Спасибо ❤️
При возникших вопросах или пожеланиях, вы можете написать на почту multiplayercorporation@gmail.com или создать запрос в Issues.
Документация MultiAPI_Lib
Введение
Выше в основном описание самой библиотеки. Библиотека и документация в основном нацелена на начинающих программистов, и на облегчение написания кода. Скорее всего найдутся люди с вопросами: "Чем она полезна для начинающих программистов?", "Чем она облегчает написание кода?". Я сам хочу знать ответы на данные вопросы. Библиотека просто существует. Возможно, она найдёт своё применение.
Для работы с библиотекой можно использовать любую среду разработки, но обязательно использовать .net framework версии не меньше 4.7.2!
[!WARNING] В данный момент библиотека на этапе разработки, поэтому до версии
1.0.0.XXXX
мы не обещаем полную совместимость старых функций в новых версиях.
[!NOTE] В исходных кодах, в документации могут быть комментарии разработчика о том как работает код.
Быстрый доступ
<space><space>
- Main.cs - Basic
- FTP.cs - FTP
- Generator.cs - Generator
- INI.cs - INI
- Internet.cs - Internet
- Mail.cs - Mail
- Music.cs - Music
- RegEdit.cs - RegEdit
- Zip.cs - Zip
Импорт библиотеки в проект
[!NOTE] Данный пункт для новичков и в примере используется Visual Studio 2022 с русским языком.
Установите библиотеку в проект.
[!WARNING] Проект должен иметь версию .net Framework не меньше 4.7.2!
Библиотеку вы можете установить вручную, с помощью NuGet или с помощью диспетчера пакетов NuGet.
Ручной метод
- Скачайте стабильную версию библиотеки по этой ссылке.
Распознать стабильную версию можно по такому значку:
- Откройте ваш проект.
- В обозревателе решений найдите пункт "Ссылки".
- Нажмите ПКМ по пункту "Ссылки" и выберите "Добавить ссылку...".
- В открывшемся окне нажмите на кнопку "Обзор..." в правом нижнем углу.
- Выберите скачанную библиотеку.
- Перейдите во вкладку "Обзор" и поставьте там флажок для библиотеки MultiAPI_Lib.dll
- MultiAPI_Lib.dll
Использование коммандной строки NuGet
- Откройте ваш проект.
- Откройте командную строку NuGet (Средства → Диспетчер пакетов NuGet → Консоль диспетчера пакетов).
- Введите в консоль следущую команду:
Install-Package MultiAPI_Lib
, этим вы установите самую последнюю версию. Определённую версию вы можете найти на NuGet
Использование диспетчера пакетов NuGet
- Откройте ваш проект.
- Откройте диспетчер пакетов NuGet (Средства → Диспетчер пакетов NuGet → Управление пакетами NuGet для решения...).
- В поисковой строке введите MultiAPI_Lib и найдите пакет с абсолютно таким же названием, а автором
dmitriykotik_off
. - Нажмите на пакет, в правом окне диспетчера выберите проекты в которые вам надо установить библиотеку, версию и нажмите кнопку установить.
Импорт библиотеки
В проекте импортируйте библиотеку следующим образом:
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 | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- ini-parser (>= 2.5.2)
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.