mirror of
https://github.com/SlothDpal/Relaunch-Process.git
synced 2026-02-22 17:27:38 +03:00
347 lines
14 KiB
C#
347 lines
14 KiB
C#
using System;
|
||
using System.ComponentModel;
|
||
using System.Diagnostics;
|
||
using System.Runtime.InteropServices;
|
||
using System.Security.Principal;
|
||
using System.Threading;
|
||
using System.Windows.Forms;
|
||
using RelaunchProcess.Properties;
|
||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||
using Discord;
|
||
using Discord.Webhook;
|
||
using System.Data;
|
||
using static System.Net.Mime.MediaTypeNames;
|
||
using RelaunchProcess;
|
||
|
||
|
||
namespace Process_Auto_Relaunch
|
||
{
|
||
public partial class Form1 : Form
|
||
{
|
||
[Flags]
|
||
public enum NotifyLevel
|
||
{
|
||
logNone = 0,
|
||
logAlways = 1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
logUpdateStatus = 2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
logHistory = 4, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
logDiscord = 8 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
}
|
||
private delegate void UpdateLogDelegate(string text, NotifyLevel level = NotifyLevel.logUpdateStatus);
|
||
private readonly UpdateLogDelegate updateLogDelegate;
|
||
private DiscordWebhook dwhHook;
|
||
private DiscordMessage dwhMessage;
|
||
|
||
public Form1()
|
||
{
|
||
InitializeComponent();
|
||
this.updateLogDelegate = this.UpdateStatus;
|
||
this.updateLogDelegate += this.SendDiscordMessage;
|
||
this.updateLogDelegate += this.HistoryLog;
|
||
myBackgroundWorker.WorkerSupportsCancellation = true;
|
||
dwhHook = new DiscordWebhook();
|
||
/*if ( Uri.IsWellFormedUriString(Settings.Default.dwhURL,UriKind.Absolute) && Settings.Default.dwhEnabled && Settings.Default.dwhURL!="")
|
||
{
|
||
dwhHook.Url = Settings.Default.dwhURL;
|
||
}
|
||
else if (Settings.Default.dwhEnabled) {
|
||
Debug.WriteLine($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> URL <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD> ({Settings.Default.dwhURL}). <20><><EFBFBD><EFBFBD><EFBFBD> <20> Discord <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||
HistoryLog($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> URL <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD> ({Settings.Default.dwhURL}). <20><><EFBFBD><EFBFBD><EFBFBD> <20> Discord <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||
Settings.Default.dwhEnabled = false;
|
||
Settings.Default.Save();
|
||
}*/
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void Form1_Load(object sender, EventArgs e)
|
||
{
|
||
LoadOldState();
|
||
|
||
//MessageBox.Show(Environment.UserDomainName);
|
||
|
||
CheckProgramState();
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
private void LoadOldState()
|
||
{
|
||
if (Settings.Default.saveOldState)
|
||
{
|
||
radioButtonEnableWathing.Checked = Settings.Default.enableWatching;
|
||
}
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void radioButtonDisableWathing_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
CheckProgramState();
|
||
|
||
if (!radioButtonDisableWathing.Checked)
|
||
{
|
||
return;
|
||
}
|
||
|
||
if (myBackgroundWorker.WorkerSupportsCancellation && myBackgroundWorker.IsBusy)
|
||
{
|
||
myBackgroundWorker.CancelAsync();
|
||
UpdateStatus("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",NotifyLevel.logUpdateStatus);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void radioButtonEnableWathing_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
if (!radioButtonEnableWathing.Checked)
|
||
{
|
||
return;
|
||
}
|
||
bool error = false;
|
||
|
||
if (String.IsNullOrEmpty(textBoxProcessName.Text))
|
||
{
|
||
error = true;
|
||
MessageBox.Show("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!" +
|
||
"\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
}
|
||
|
||
if (String.IsNullOrEmpty(Settings.Default.startProgramPath))
|
||
{
|
||
error = true;
|
||
MessageBox.Show("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." +
|
||
"\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
}
|
||
|
||
if (error)
|
||
{
|
||
radioButtonEnableWathing.Checked = false;
|
||
radioButtonDisableWathing.Checked = true;
|
||
return;
|
||
}
|
||
|
||
if (!myBackgroundWorker.IsBusy)
|
||
{
|
||
myBackgroundWorker.RunWorkerAsync();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="text"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </param>
|
||
/// <param name="level"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||
public void UpdateStatus( string text, NotifyLevel level )
|
||
{
|
||
if (!level.HasFlag(NotifyLevel.logAlways) && !level.HasFlag(NotifyLevel.logUpdateStatus)) return;
|
||
labelStatus.Text = text;
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="text"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </param>
|
||
/// <param name="level"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||
private void HistoryLog( string text, NotifyLevel level )
|
||
{
|
||
if (!level.HasFlag(NotifyLevel.logAlways) && !level.HasFlag(NotifyLevel.logHistory)) return;
|
||
richTextBoxHistory.Text += DateTime.Now.ToString() + ": " + text + "\n";
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Discord
|
||
/// </summary>
|
||
/// <param name="text"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </param>
|
||
/// <param name="level"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||
public void SendDiscordMessage( string text, NotifyLevel level )
|
||
{
|
||
if (!level.HasFlag(NotifyLevel.logAlways) && !level.HasFlag(NotifyLevel.logDiscord)) return;
|
||
if (Settings.Default.dwhEnabled)
|
||
{
|
||
dwhHook.Url = Settings.Default.dwhURL;
|
||
dwhMessage.Username = Settings.Default.dwhBotname;
|
||
dwhMessage.AvatarUrl = Settings.Default.dwhAvatarURL;
|
||
dwhMessage.Content = ":arrows_counterclockwise: " + text;
|
||
try
|
||
{
|
||
dwhHook.Send(dwhMessage);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Status($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",NotifyLevel.logHistory);
|
||
Debug.WriteLine($"Discord messaging error: {ex.Message}");
|
||
//Settings.Default.dwhEnabled = false;
|
||
//Settings.Default.Save();
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="text"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </param>
|
||
/// <param name="level"><3E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||
public void Status(string text, NotifyLevel level = NotifyLevel.logUpdateStatus)
|
||
{
|
||
Invoke(updateLogDelegate, text, level);
|
||
}
|
||
|
||
private void CheckProgramState()
|
||
{
|
||
bool watching = radioButtonEnableWathing.Checked;
|
||
Debug.WriteLine($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: {watching}");
|
||
|
||
groupBoxProcessName.Enabled = !watching;
|
||
groupBoxProgramStart.Enabled = !watching;
|
||
groupBoxActions.Enabled = !watching;
|
||
btnShowDiscordSettings.Enabled = !watching; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
Settings.Default.enableWatching = watching;
|
||
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void ButtonSetProgramStart_Click(object sender, EventArgs e)
|
||
{
|
||
OpenFileDialog openFile = new OpenFileDialog();
|
||
openFile.Filter = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*.exe)|*.exe";
|
||
openFile.Title = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||
|
||
if (openFile.ShowDialog() == DialogResult.Cancel)
|
||
{
|
||
return;
|
||
}
|
||
|
||
int lastSlash = openFile.FileName.LastIndexOf("\\");
|
||
textBoxProcessName.Text = openFile.FileName.Substring(lastSlash+1);
|
||
textBoxProcessName.Text = textBoxProcessName.Text.Remove(textBoxProcessName.Text.Length-4);
|
||
Settings.Default.startProgramPath = openFile.FileName;
|
||
Settings.Default.Save();
|
||
openFile.Dispose();
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||
{
|
||
Settings.Default.Save();
|
||
}
|
||
|
||
private bool ProcessByNameIsRuning(string name)
|
||
{
|
||
var sessionid = Process.GetCurrentProcess().SessionId;
|
||
var processes = Process.GetProcessesByName(name);
|
||
foreach (var process in processes)
|
||
{
|
||
Debug.WriteLine($"Found proces: {process.ProcessName}. Session Id: {process.SessionId}. Current Session Id: {sessionid}");
|
||
if (process.SessionId == sessionid)
|
||
return true;
|
||
}
|
||
|
||
Debug.WriteLine($"Process {name} for current session id {sessionid} not found");
|
||
return false;
|
||
}
|
||
|
||
private void ProcessStart(string path, string args)
|
||
{
|
||
if (checkBoxCheckProcess.Checked)
|
||
{
|
||
if (ProcessByNameIsRuning(path))
|
||
{
|
||
return;
|
||
}
|
||
}
|
||
|
||
Status("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.", NotifyLevel.logAlways);
|
||
Process.Start(path, args);
|
||
}
|
||
|
||
private void BackgroundWorkerDoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
|
||
{
|
||
BackgroundWorker worker = sender as BackgroundWorker;
|
||
int i = (int)numericUpDown1.Value;
|
||
|
||
while (!worker.CancellationPending)
|
||
{
|
||
if (ProcessByNameIsRuning(textBoxProcessName.Text))
|
||
{
|
||
Status($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",NotifyLevel.logUpdateStatus);
|
||
if (i < (int)numericUpDown1.Value) SendDiscordMessage($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {textBoxProcessName.Text} <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",NotifyLevel.logDiscord);
|
||
i = (int)numericUpDown1.Value;
|
||
}
|
||
else
|
||
{
|
||
if (radioButtonRestartTimer.Checked)
|
||
{
|
||
if (i==(int)numericUpDown1.Value) Status($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {textBoxProcessName.Text} <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> {i} <20><><EFBFBD>",NotifyLevel.logDiscord);
|
||
i--;
|
||
Status($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {textBoxProcessName.Text} <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> {i}", NotifyLevel.logUpdateStatus);
|
||
}
|
||
|
||
if (i <= 0 || radioButtonRestartNow.Checked)
|
||
{
|
||
i = (int)numericUpDown1.Value;
|
||
Status($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {textBoxProcessName.Text}", NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
|
||
ProcessStart(Settings.Default.startProgramPath, textBoxArguments.Text);
|
||
}
|
||
}
|
||
|
||
Thread.Sleep(1000);
|
||
}
|
||
|
||
if (worker.CancellationPending)
|
||
{
|
||
e.Cancel = true;
|
||
}
|
||
}
|
||
|
||
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||
{
|
||
if (e.Cancelled)
|
||
{
|
||
Status("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
|
||
}
|
||
else if (e.Error != null)
|
||
{
|
||
Status("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.", NotifyLevel.logUpdateStatus | NotifyLevel.logDiscord);
|
||
MessageBox.Show("Error: " + e.Error.Message, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MessageBoxButtons.OK, MessageBoxIcon.Stop);
|
||
radioButtonDisableWathing.Checked = true;
|
||
}
|
||
else
|
||
{
|
||
Status("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.", NotifyLevel.logUpdateStatus|NotifyLevel.logDiscord);
|
||
}
|
||
}
|
||
|
||
private void btnShowDiscordSettings_Click(object sender, EventArgs e)
|
||
{
|
||
WebhookSettings discordSettings;
|
||
discordSettings = new WebhookSettings();
|
||
discordSettings.ShowDialog(this);
|
||
discordSettings.Dispose();
|
||
}
|
||
}
|
||
}
|