Merge with master

This commit is contained in:
SlothDpal
2024-05-27 16:35:54 +03:00
10 changed files with 54 additions and 53 deletions

View File

@@ -1,4 +1,4 @@
namespace RelaunchProcess
namespace RelaunchProcess
{
partial class WebhookSettings
{

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

View File

@@ -22,10 +22,10 @@ namespace Process_Auto_Relaunch
public enum NotifyLevel
{
logNone = 0,
logAlways = 1, // ïèñàòü âåçäå
logUpdateStatus = 2, // ïèñàòü â ñòðîêå ñîñòîÿíèÿ
logHistory = 4, // ïèñàòü â îêíå èñòîðèè ïåðåçàïóñêîâ
logDiscord = 8 // ïèñàòü â Äèñêîðä
logAlways = 1, // писать везде
logUpdateStatus = 2, // писать в строке состояния
logHistory = 4, // писать в окне истории перезапусков
logDiscord = 8 // писать в Дискорд
}
private delegate void UpdateLogDelegate(string text, NotifyLevel level = NotifyLevel.logUpdateStatus);
private readonly UpdateLogDelegate updateLogDelegate;
@@ -47,7 +47,7 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Ñîáûòèå çàïóñêà ôîðìû
/// Событие запуска формы
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@@ -61,7 +61,7 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Âîññòàíîâëåíèå íàñòðîåê
/// Восстановление настроек
/// </summary>
private void LoadOldState()
{
@@ -73,7 +73,7 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Ìåòîä äëÿ ñîáûòèÿ îòêëþ÷åíèÿ
/// Метод для события отключения
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@@ -89,12 +89,12 @@ namespace Process_Auto_Relaunch
if (myBackgroundWorker.WorkerSupportsCancellation && myBackgroundWorker.IsBusy)
{
myBackgroundWorker.CancelAsync();
UpdateStatus("Îòìåíÿåì...",NotifyLevel.logUpdateStatus);
UpdateStatus("Отменяем...",NotifyLevel.logUpdateStatus);
}
}
/// <summary>
/// Ìåòîä äëÿ ñîáûòèÿ âêëþ÷åíèÿ
/// Метод для события включения
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@@ -109,15 +109,15 @@ namespace Process_Auto_Relaunch
if (String.IsNullOrEmpty(textBoxProcessName.Text))
{
error = true;
MessageBox.Show("Èìÿ ïðîöåññà íå ìîæåò áûòü ïóñòûì!" +
"\nÓêàæèòå èìÿ ïðîöåññà", "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show("Имя процесса не может быть пустым!" +
"\nУкажите имя процесса", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if (String.IsNullOrEmpty(Settings.Default.startProgramPath))
{
error = true;
MessageBox.Show("Ïðîãðàììà äëÿ çàïóñêà íå óêàçàíà." +
"\nÓêàæèòå ïðîãðàììó äëÿ çàïóñêà", "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show("Программа для запуска не указана." +
"\nУкажите программу для запуска", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if (error)
@@ -130,15 +130,15 @@ namespace Process_Auto_Relaunch
if (!myBackgroundWorker.IsBusy)
{
myBackgroundWorker.RunWorkerAsync();
Status($"Çàïóñêàåì íàáëþäåíèå...", NotifyLevel.logDiscord);
Status($"Запускаем наблюдение...", NotifyLevel.logDiscord);
}
}
/// <summary>
/// Îáíîâëåíèå ñòàòóñà â ïðîãðàììå
/// Обновление статуса в программе
/// </summary>
/// <param name="text">Òåêñò äëÿ îòîáðàæåíèÿ/îòïðàâêè </param>
/// <param name="level">Ôëàãè äëÿ íàçíà÷åíèÿ îòïðàâêè</param>
/// <param name="text">Текст для отображения/отправки </param>
/// <param name="level">Флаги для назначения отправки</param>
public void UpdateStatus( string text, NotifyLevel level )
{
if (!level.HasFlag(NotifyLevel.logAlways) && !level.HasFlag(NotifyLevel.logUpdateStatus)) return;
@@ -146,10 +146,10 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Äîáàâëåíèå ñòðîêè â Èñòîðèè Çàïóñêîâ
/// Добавление строки в Истории Запусков
/// </summary>
/// <param name="text">Òåêñò äëÿ îòîáðàæåíèÿ/îòïðàâêè </param>
/// <param name="level">Ôëàãè äëÿ íàçíà÷åíèÿ îòïðàâêè</param>
/// <param name="text">Текст для отображения/отправки </param>
/// <param name="level">Флаги для назначения отправки</param>
private void HistoryLog( string text, NotifyLevel level )
{
if (!level.HasFlag(NotifyLevel.logAlways) && !level.HasFlag(NotifyLevel.logHistory)) return;
@@ -157,10 +157,10 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Îòïðàâêà ñòàòóñà â Discord
/// Отправка статуса в Discord
/// </summary>
/// <param name="text">Òåêñò äëÿ îòîáðàæåíèÿ/îòïðàâêè </param>
/// <param name="level">Ôëàãè äëÿ íàçíà÷åíèÿ îòïðàâêè</param>
/// <param name="text">Текст для отображения/отправки </param>
/// <param name="level">Флаги для назначения отправки</param>
public void SendDiscordMessage( string text, NotifyLevel level )
{
if (!level.HasFlag(NotifyLevel.logAlways) && !level.HasFlag(NotifyLevel.logDiscord)) return;
@@ -176,7 +176,7 @@ namespace Process_Auto_Relaunch
}
catch (Exception ex)
{
Status($"Îøèáêà îòïðàâêè â äèñêîðä.",NotifyLevel.logHistory);
Status($"Ошибка отправки в дискорд.",NotifyLevel.logHistory);
Debug.WriteLine($"Discord messaging error: {ex.Message}");
//Settings.Default.dwhEnabled = false;
//Settings.Default.Save();
@@ -185,10 +185,10 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Îáíîâëåíèå ñòàòóñà â ïðîãðàììå
/// Обновление статуса в программе
/// </summary>
/// <param name="text">Òåêñò äëÿ îòîáðàæåíèÿ/îòïðàâêè </param>
/// <param name="level">Ôëàãè äëÿ íàçíà÷åíèÿ îòïðàâêè</param>
/// <param name="text">Текст для отображения/отправки </param>
/// <param name="level">Флаги для назначения отправки</param>
public void Status(string text, NotifyLevel level = NotifyLevel.logUpdateStatus)
{
Invoke(updateLogDelegate, text, level);
@@ -197,12 +197,12 @@ namespace Process_Auto_Relaunch
private void CheckProgramState()
{
bool watching = radioButtonEnableWathing.Checked;
Debug.WriteLine($"Íàáëþäåíèå: {watching}");
Debug.WriteLine($"Наблюдение: {watching}");
groupBoxProcessName.Enabled = !watching;
groupBoxProgramStart.Enabled = !watching;
groupBoxActions.Enabled = !watching;
btnShowDiscordSettings.Enabled = !watching; //îòêëþ÷àåì êíîïêó íàñòðîåê äèñêîðäà
btnShowDiscordSettings.Enabled = !watching; //отключаем кнопку настроек дискорда
Settings.Default.enableWatching = watching;
@@ -210,15 +210,15 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Âûáîð ôàéëà äëÿ çàïóñêà
/// Выбор файла для запуска
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ButtonSetProgramStart_Click(object sender, EventArgs e)
{
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Èñïîëíÿåìûå ôàéëû (*.exe)|*.exe";
openFile.Title = "Óêàæèòå ïðîãðàììó çàïóñêà";
openFile.Filter = "Исполняемые файлы (*.exe)|*.exe";
openFile.Title = "Укажите программу запуска";
if (openFile.ShowDialog() == DialogResult.Cancel)
{
@@ -234,14 +234,14 @@ namespace Process_Auto_Relaunch
}
/// <summary>
/// Ñîáûòèå ïåðåä çàêðûòèåì ôîðìû
/// Событие перед закрытием формы
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Settings.Default.Save();
Status("Ïðîãðàììà çàêðûòà.", NotifyLevel.logAlways);
Status("Приложение закрыто.", NotifyLevel.logAlways);
}
private bool ProcessByNameIsRuning(string name)
@@ -271,9 +271,10 @@ namespace Process_Auto_Relaunch
}
}
Status("Ïðîöåññ áûë çàïóùåí.", NotifyLevel.logAlways);
WatchedProcess=Process.Start(path, args);
cpuMeasureTimer.Start();
Status("Процесс был запущен.", NotifyLevel.logAlways);
Process.Start(path, args);
}
private void BackgroundWorkerDoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
@@ -291,23 +292,23 @@ namespace Process_Auto_Relaunch
double cpuPercent = cpuTotalTime * 100 / (Environment.ProcessorCount * cpuMeasureTimer.ElapsedMilliseconds);
cpuMeasureTimer.Reset();
cpuMeasureTimer.Start();
Status($"Ïðîöåññ óæå çàïóùåí. CPU: {cpuPercent:f2}% {cpuTotalTime:f2}ìñåê",NotifyLevel.logUpdateStatus);
if (i < (int)numericUpDown1.Value) SendDiscordMessage($"Ïðîöåññ {textBoxProcessName.Text} çàïóùåí.",NotifyLevel.logDiscord);
Status($"Процесс уже запущен. CPU: {cpuPercent:f2}% {cpuTotalTime:f2}мсек",NotifyLevel.logUpdateStatus);
if (i < (int)numericUpDown1.Value) SendDiscordMessage($"Процесс {textBoxProcessName.Text} запущен.",NotifyLevel.logDiscord);
i = (int)numericUpDown1.Value;
}
else
{
if (radioButtonRestartTimer.Checked)
{
if (i==(int)numericUpDown1.Value) Status($"Ïðîöåññ {textBoxProcessName.Text} íå íàéäåí. Çàïóñê ÷åðåç {i} ñåê",NotifyLevel.logDiscord);
if (i==(int)numericUpDown1.Value) Status($"Процесс {textBoxProcessName.Text} не найден. Запуск через {i} сек",NotifyLevel.logDiscord);
i--;
Status($"Ïðîöåññ {textBoxProcessName.Text} íå íàéäåí. Çàïóñê ÷åðåç {i}", NotifyLevel.logUpdateStatus);
Status($"Процесс {textBoxProcessName.Text} не найден. Запуск через {i}", NotifyLevel.logUpdateStatus);
}
if (i <= 0 || radioButtonRestartNow.Checked)
{
i = (int)numericUpDown1.Value;
Status($"Çàïóñêàåì {textBoxProcessName.Text}", NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
Status($"Запускаем {textBoxProcessName.Text}", NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
ProcessStart(Settings.Default.startProgramPath, textBoxArguments.Text);
}
}
@@ -325,17 +326,17 @@ namespace Process_Auto_Relaunch
{
if (e.Cancelled)
{
Status("Íàáëþäåíèå îòìåíåíî.",NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
Status("Наблюдение отменено.",NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
}
else if (e.Error != null)
{
Status("Ïðîèçîøëà îøèáêà! Íàáëþäåíèå îñòàíîâëåíî.", NotifyLevel.logUpdateStatus | NotifyLevel.logDiscord);
MessageBox.Show("Error: " + e.Error.Message, "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Stop);
Status("Произошла ошибка! Наблюдение остановлено.", NotifyLevel.logUpdateStatus | NotifyLevel.logDiscord);
MessageBox.Show("Error: " + e.Error.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);
radioButtonDisableWathing.Checked = true;
}
else
{
Status("Íàáëþäåíèå îñòàíîâëåíî.", NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
Status("Наблюдение остановлено.", NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
}
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>

View File

@@ -1,4 +1,4 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34622.214

View File

@@ -12,7 +12,7 @@ namespace RelaunchProcess
internal static class Program
{
/// <summary>
/// Ãëàâíàÿ òî÷êà âõîäà äëÿ ïðèëîæåíèÿ.
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()

View File

@@ -1,4 +1,4 @@
namespace RelaunchProcess.Properties {
namespace RelaunchProcess.Properties {
// Этот класс позволяет обрабатывать определенные события в классе параметров:

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
</packages>