mirror of
https://github.com/SlothDpal/Relaunch-Process.git
synced 2026-02-22 17:27:38 +03:00
Добавьте файлы проекта.
This commit is contained in:
49
App.config
Normal file
49
App.config
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<section name="RelaunchProcess.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||||
|
<section name="Process_Auto_Relaunch.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<userSettings>
|
||||||
|
<RelaunchProcess.Properties.Settings>
|
||||||
|
<setting name="startProgramPath" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
<setting name="arguments" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
<setting name="saveOldState" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="enableWatching" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="processName" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
<setting name="checkBeforeStart" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="restartNow" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
|
</RelaunchProcess.Properties.Settings>
|
||||||
|
<Process_Auto_Relaunch.Properties.Settings>
|
||||||
|
<setting name="startProgramPath" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
<setting name="arguments" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
<setting name="disableWathing" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="saveOldState" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
</Process_Auto_Relaunch.Properties.Settings>
|
||||||
|
</userSettings>
|
||||||
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
|
||||||
|
</configuration>
|
||||||
363
Form1.Designer.cs
generated
Normal file
363
Form1.Designer.cs
generated
Normal file
@@ -0,0 +1,363 @@
|
|||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Process_Auto_Relaunch
|
||||||
|
{
|
||||||
|
partial class Form1
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
||||||
|
this.groupBoxActions = new System.Windows.Forms.GroupBox();
|
||||||
|
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.radioButtonRestartTimer = new System.Windows.Forms.RadioButton();
|
||||||
|
this.buttonSetProgramStart = new System.Windows.Forms.Button();
|
||||||
|
this.groupBoxProgramStart = new System.Windows.Forms.GroupBox();
|
||||||
|
this.labelArguments = new System.Windows.Forms.Label();
|
||||||
|
this.groupBoxProcessName = new System.Windows.Forms.GroupBox();
|
||||||
|
this.groupBoxEnabled = new System.Windows.Forms.GroupBox();
|
||||||
|
this.radioButtonEnableWathing = new System.Windows.Forms.RadioButton();
|
||||||
|
this.radioButtonDisableWathing = new System.Windows.Forms.RadioButton();
|
||||||
|
this.groupBoxStatus = new System.Windows.Forms.GroupBox();
|
||||||
|
this.labelStatus = new System.Windows.Forms.Label();
|
||||||
|
this.myBackgroundWorker = new System.ComponentModel.BackgroundWorker();
|
||||||
|
this.checkBoxSaveState = new System.Windows.Forms.CheckBox();
|
||||||
|
this.textBoxProcessName = new System.Windows.Forms.TextBox();
|
||||||
|
this.textBoxArguments = new System.Windows.Forms.TextBox();
|
||||||
|
this.labelProgramStartPath = new System.Windows.Forms.Label();
|
||||||
|
this.checkBoxCheckProcess = new System.Windows.Forms.CheckBox();
|
||||||
|
this.radioButtonRestartNow = new System.Windows.Forms.RadioButton();
|
||||||
|
this.groupBoxActions.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||||
|
this.groupBoxProgramStart.SuspendLayout();
|
||||||
|
this.groupBoxProcessName.SuspendLayout();
|
||||||
|
this.groupBoxEnabled.SuspendLayout();
|
||||||
|
this.groupBoxStatus.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// groupBoxActions
|
||||||
|
//
|
||||||
|
this.groupBoxActions.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.groupBoxActions.Controls.Add(this.numericUpDown1);
|
||||||
|
this.groupBoxActions.Controls.Add(this.label1);
|
||||||
|
this.groupBoxActions.Controls.Add(this.checkBoxCheckProcess);
|
||||||
|
this.groupBoxActions.Controls.Add(this.radioButtonRestartTimer);
|
||||||
|
this.groupBoxActions.Controls.Add(this.radioButtonRestartNow);
|
||||||
|
this.groupBoxActions.Location = new System.Drawing.Point(10, 64);
|
||||||
|
this.groupBoxActions.Name = "groupBoxActions";
|
||||||
|
this.groupBoxActions.Size = new System.Drawing.Size(287, 111);
|
||||||
|
this.groupBoxActions.TabIndex = 0;
|
||||||
|
this.groupBoxActions.TabStop = false;
|
||||||
|
this.groupBoxActions.Text = "Действие после отсутствия процесса";
|
||||||
|
//
|
||||||
|
// numericUpDown1
|
||||||
|
//
|
||||||
|
this.numericUpDown1.Increment = new decimal(new int[] {
|
||||||
|
5,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numericUpDown1.Location = new System.Drawing.Point(149, 19);
|
||||||
|
this.numericUpDown1.Maximum = new decimal(new int[] {
|
||||||
|
1800,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numericUpDown1.Minimum = new decimal(new int[] {
|
||||||
|
5,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numericUpDown1.Name = "numericUpDown1";
|
||||||
|
this.numericUpDown1.Size = new System.Drawing.Size(54, 20);
|
||||||
|
this.numericUpDown1.TabIndex = 5;
|
||||||
|
this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
|
this.numericUpDown1.Value = new decimal(new int[] {
|
||||||
|
30,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(209, 21);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(42, 13);
|
||||||
|
this.label1.TabIndex = 4;
|
||||||
|
this.label1.Text = "секунд";
|
||||||
|
//
|
||||||
|
// radioButtonRestartTimer
|
||||||
|
//
|
||||||
|
this.radioButtonRestartTimer.AutoSize = true;
|
||||||
|
this.radioButtonRestartTimer.Checked = true;
|
||||||
|
this.radioButtonRestartTimer.Location = new System.Drawing.Point(9, 19);
|
||||||
|
this.radioButtonRestartTimer.Name = "radioButtonRestartTimer";
|
||||||
|
this.radioButtonRestartTimer.Size = new System.Drawing.Size(134, 17);
|
||||||
|
this.radioButtonRestartTimer.TabIndex = 1;
|
||||||
|
this.radioButtonRestartTimer.TabStop = true;
|
||||||
|
this.radioButtonRestartTimer.Text = "Перезапустить через";
|
||||||
|
this.radioButtonRestartTimer.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// buttonSetProgramStart
|
||||||
|
//
|
||||||
|
this.buttonSetProgramStart.Location = new System.Drawing.Point(4, 19);
|
||||||
|
this.buttonSetProgramStart.Name = "buttonSetProgramStart";
|
||||||
|
this.buttonSetProgramStart.Size = new System.Drawing.Size(67, 28);
|
||||||
|
this.buttonSetProgramStart.TabIndex = 1;
|
||||||
|
this.buttonSetProgramStart.Text = "Обзор";
|
||||||
|
this.buttonSetProgramStart.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonSetProgramStart.Click += new System.EventHandler(this.buttonSetProgramStart_Click);
|
||||||
|
//
|
||||||
|
// groupBoxProgramStart
|
||||||
|
//
|
||||||
|
this.groupBoxProgramStart.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.groupBoxProgramStart.Controls.Add(this.textBoxArguments);
|
||||||
|
this.groupBoxProgramStart.Controls.Add(this.labelArguments);
|
||||||
|
this.groupBoxProgramStart.Controls.Add(this.labelProgramStartPath);
|
||||||
|
this.groupBoxProgramStart.Controls.Add(this.buttonSetProgramStart);
|
||||||
|
this.groupBoxProgramStart.Location = new System.Drawing.Point(10, 180);
|
||||||
|
this.groupBoxProgramStart.Name = "groupBoxProgramStart";
|
||||||
|
this.groupBoxProgramStart.Size = new System.Drawing.Size(287, 113);
|
||||||
|
this.groupBoxProgramStart.TabIndex = 6;
|
||||||
|
this.groupBoxProgramStart.TabStop = false;
|
||||||
|
this.groupBoxProgramStart.Text = "Запуск программы";
|
||||||
|
//
|
||||||
|
// labelArguments
|
||||||
|
//
|
||||||
|
this.labelArguments.AutoSize = true;
|
||||||
|
this.labelArguments.Location = new System.Drawing.Point(4, 72);
|
||||||
|
this.labelArguments.Name = "labelArguments";
|
||||||
|
this.labelArguments.Size = new System.Drawing.Size(153, 13);
|
||||||
|
this.labelArguments.TabIndex = 3;
|
||||||
|
this.labelArguments.Text = "Дополнительные аргументы";
|
||||||
|
//
|
||||||
|
// groupBoxProcessName
|
||||||
|
//
|
||||||
|
this.groupBoxProcessName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.groupBoxProcessName.Controls.Add(this.textBoxProcessName);
|
||||||
|
this.groupBoxProcessName.Location = new System.Drawing.Point(10, 10);
|
||||||
|
this.groupBoxProcessName.Name = "groupBoxProcessName";
|
||||||
|
this.groupBoxProcessName.Size = new System.Drawing.Size(287, 50);
|
||||||
|
this.groupBoxProcessName.TabIndex = 8;
|
||||||
|
this.groupBoxProcessName.TabStop = false;
|
||||||
|
this.groupBoxProcessName.Text = "Название наблюдаемого процесса";
|
||||||
|
//
|
||||||
|
// groupBoxEnabled
|
||||||
|
//
|
||||||
|
this.groupBoxEnabled.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.groupBoxEnabled.Controls.Add(this.checkBoxSaveState);
|
||||||
|
this.groupBoxEnabled.Controls.Add(this.radioButtonEnableWathing);
|
||||||
|
this.groupBoxEnabled.Controls.Add(this.radioButtonDisableWathing);
|
||||||
|
this.groupBoxEnabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.groupBoxEnabled.Location = new System.Drawing.Point(10, 298);
|
||||||
|
this.groupBoxEnabled.Name = "groupBoxEnabled";
|
||||||
|
this.groupBoxEnabled.Size = new System.Drawing.Size(287, 72);
|
||||||
|
this.groupBoxEnabled.TabIndex = 9;
|
||||||
|
this.groupBoxEnabled.TabStop = false;
|
||||||
|
this.groupBoxEnabled.Text = "Состояние";
|
||||||
|
//
|
||||||
|
// radioButtonEnableWathing
|
||||||
|
//
|
||||||
|
this.radioButtonEnableWathing.AutoSize = true;
|
||||||
|
this.radioButtonEnableWathing.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.radioButtonEnableWathing.Location = new System.Drawing.Point(106, 19);
|
||||||
|
this.radioButtonEnableWathing.Name = "radioButtonEnableWathing";
|
||||||
|
this.radioButtonEnableWathing.Size = new System.Drawing.Size(75, 17);
|
||||||
|
this.radioButtonEnableWathing.TabIndex = 1;
|
||||||
|
this.radioButtonEnableWathing.Text = "Включено";
|
||||||
|
this.radioButtonEnableWathing.UseVisualStyleBackColor = true;
|
||||||
|
this.radioButtonEnableWathing.CheckedChanged += new System.EventHandler(this.radioButtonEnableWathing_CheckedChanged);
|
||||||
|
//
|
||||||
|
// radioButtonDisableWathing
|
||||||
|
//
|
||||||
|
this.radioButtonDisableWathing.AutoSize = true;
|
||||||
|
this.radioButtonDisableWathing.Checked = true;
|
||||||
|
this.radioButtonDisableWathing.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.radioButtonDisableWathing.Location = new System.Drawing.Point(8, 19);
|
||||||
|
this.radioButtonDisableWathing.Name = "radioButtonDisableWathing";
|
||||||
|
this.radioButtonDisableWathing.Size = new System.Drawing.Size(83, 17);
|
||||||
|
this.radioButtonDisableWathing.TabIndex = 0;
|
||||||
|
this.radioButtonDisableWathing.TabStop = true;
|
||||||
|
this.radioButtonDisableWathing.Text = "Выключено";
|
||||||
|
this.radioButtonDisableWathing.UseVisualStyleBackColor = true;
|
||||||
|
this.radioButtonDisableWathing.CheckedChanged += new System.EventHandler(this.radioButtonDisableWathing_CheckedChanged);
|
||||||
|
//
|
||||||
|
// groupBoxStatus
|
||||||
|
//
|
||||||
|
this.groupBoxStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.groupBoxStatus.Controls.Add(this.labelStatus);
|
||||||
|
this.groupBoxStatus.Location = new System.Drawing.Point(10, 375);
|
||||||
|
this.groupBoxStatus.Name = "groupBoxStatus";
|
||||||
|
this.groupBoxStatus.Size = new System.Drawing.Size(287, 52);
|
||||||
|
this.groupBoxStatus.TabIndex = 10;
|
||||||
|
this.groupBoxStatus.TabStop = false;
|
||||||
|
this.groupBoxStatus.Text = "Текущий статус";
|
||||||
|
//
|
||||||
|
// labelStatus
|
||||||
|
//
|
||||||
|
this.labelStatus.AutoSize = true;
|
||||||
|
this.labelStatus.Location = new System.Drawing.Point(15, 25);
|
||||||
|
this.labelStatus.Name = "labelStatus";
|
||||||
|
this.labelStatus.Size = new System.Drawing.Size(74, 13);
|
||||||
|
this.labelStatus.TabIndex = 0;
|
||||||
|
this.labelStatus.Text = "Не запущено";
|
||||||
|
//
|
||||||
|
// myBackgroundWorker
|
||||||
|
//
|
||||||
|
this.myBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.BackgroundWorkerDoWork);
|
||||||
|
this.myBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
|
||||||
|
//
|
||||||
|
// checkBoxSaveState
|
||||||
|
//
|
||||||
|
this.checkBoxSaveState.AutoSize = true;
|
||||||
|
this.checkBoxSaveState.Checked = global::RelaunchProcess.Properties.Settings.Default.saveOldState;
|
||||||
|
this.checkBoxSaveState.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.checkBoxSaveState.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RelaunchProcess.Properties.Settings.Default, "saveOldState", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||||
|
this.checkBoxSaveState.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.checkBoxSaveState.Location = new System.Drawing.Point(15, 41);
|
||||||
|
this.checkBoxSaveState.Name = "checkBoxSaveState";
|
||||||
|
this.checkBoxSaveState.Size = new System.Drawing.Size(201, 17);
|
||||||
|
this.checkBoxSaveState.TabIndex = 2;
|
||||||
|
this.checkBoxSaveState.Text = "Запоминать последнее состояние";
|
||||||
|
this.checkBoxSaveState.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// textBoxProcessName
|
||||||
|
//
|
||||||
|
this.textBoxProcessName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.textBoxProcessName.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RelaunchProcess.Properties.Settings.Default, "processName", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||||
|
this.textBoxProcessName.Location = new System.Drawing.Point(5, 20);
|
||||||
|
this.textBoxProcessName.Name = "textBoxProcessName";
|
||||||
|
this.textBoxProcessName.Size = new System.Drawing.Size(277, 20);
|
||||||
|
this.textBoxProcessName.TabIndex = 3;
|
||||||
|
this.textBoxProcessName.Text = global::RelaunchProcess.Properties.Settings.Default.processName;
|
||||||
|
//
|
||||||
|
// textBoxArguments
|
||||||
|
//
|
||||||
|
this.textBoxArguments.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RelaunchProcess.Properties.Settings.Default, "arguments", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||||
|
this.textBoxArguments.Location = new System.Drawing.Point(5, 88);
|
||||||
|
this.textBoxArguments.Name = "textBoxArguments";
|
||||||
|
this.textBoxArguments.Size = new System.Drawing.Size(275, 20);
|
||||||
|
this.textBoxArguments.TabIndex = 4;
|
||||||
|
this.textBoxArguments.Text = global::RelaunchProcess.Properties.Settings.Default.arguments;
|
||||||
|
//
|
||||||
|
// labelProgramStartPath
|
||||||
|
//
|
||||||
|
this.labelProgramStartPath.AutoSize = true;
|
||||||
|
this.labelProgramStartPath.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RelaunchProcess.Properties.Settings.Default, "startProgramPath", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||||
|
this.labelProgramStartPath.Location = new System.Drawing.Point(5, 50);
|
||||||
|
this.labelProgramStartPath.Name = "labelProgramStartPath";
|
||||||
|
this.labelProgramStartPath.Size = new System.Drawing.Size(0, 13);
|
||||||
|
this.labelProgramStartPath.TabIndex = 2;
|
||||||
|
this.labelProgramStartPath.Text = global::RelaunchProcess.Properties.Settings.Default.startProgramPath;
|
||||||
|
//
|
||||||
|
// checkBoxCheckProcess
|
||||||
|
//
|
||||||
|
this.checkBoxCheckProcess.AutoSize = true;
|
||||||
|
this.checkBoxCheckProcess.Checked = global::RelaunchProcess.Properties.Settings.Default.checkBeforeStart;
|
||||||
|
this.checkBoxCheckProcess.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.checkBoxCheckProcess.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RelaunchProcess.Properties.Settings.Default, "checkBeforeStart", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||||
|
this.checkBoxCheckProcess.Location = new System.Drawing.Point(12, 80);
|
||||||
|
this.checkBoxCheckProcess.Name = "checkBoxCheckProcess";
|
||||||
|
this.checkBoxCheckProcess.Size = new System.Drawing.Size(153, 17);
|
||||||
|
this.checkBoxCheckProcess.TabIndex = 2;
|
||||||
|
this.checkBoxCheckProcess.Text = "Не создавать дубликаты";
|
||||||
|
this.checkBoxCheckProcess.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// radioButtonRestartNow
|
||||||
|
//
|
||||||
|
this.radioButtonRestartNow.AutoSize = true;
|
||||||
|
this.radioButtonRestartNow.Checked = global::RelaunchProcess.Properties.Settings.Default.restartNow;
|
||||||
|
this.radioButtonRestartNow.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RelaunchProcess.Properties.Settings.Default, "restartNow", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||||
|
this.radioButtonRestartNow.Location = new System.Drawing.Point(8, 41);
|
||||||
|
this.radioButtonRestartNow.Name = "radioButtonRestartNow";
|
||||||
|
this.radioButtonRestartNow.Size = new System.Drawing.Size(135, 17);
|
||||||
|
this.radioButtonRestartNow.TabIndex = 0;
|
||||||
|
this.radioButtonRestartNow.Text = "Перезапускать сразу";
|
||||||
|
this.radioButtonRestartNow.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// Form1
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(316, 445);
|
||||||
|
this.Controls.Add(this.groupBoxStatus);
|
||||||
|
this.Controls.Add(this.groupBoxEnabled);
|
||||||
|
this.Controls.Add(this.groupBoxProcessName);
|
||||||
|
this.Controls.Add(this.groupBoxProgramStart);
|
||||||
|
this.Controls.Add(this.groupBoxActions);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.Name = "Form1";
|
||||||
|
this.Text = "Relaunch Process";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||||
|
this.Load += new System.EventHandler(this.Form1_Load);
|
||||||
|
this.groupBoxActions.ResumeLayout(false);
|
||||||
|
this.groupBoxActions.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||||
|
this.groupBoxProgramStart.ResumeLayout(false);
|
||||||
|
this.groupBoxProgramStart.PerformLayout();
|
||||||
|
this.groupBoxProcessName.ResumeLayout(false);
|
||||||
|
this.groupBoxProcessName.PerformLayout();
|
||||||
|
this.groupBoxEnabled.ResumeLayout(false);
|
||||||
|
this.groupBoxEnabled.PerformLayout();
|
||||||
|
this.groupBoxStatus.ResumeLayout(false);
|
||||||
|
this.groupBoxStatus.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private GroupBox groupBoxActions;
|
||||||
|
private Label label1;
|
||||||
|
private CheckBox checkBoxCheckProcess;
|
||||||
|
private RadioButton radioButtonRestartTimer;
|
||||||
|
private RadioButton radioButtonRestartNow;
|
||||||
|
private Button buttonSetProgramStart;
|
||||||
|
private TextBox textBoxProcessName;
|
||||||
|
private GroupBox groupBoxProgramStart;
|
||||||
|
private Label labelProgramStartPath;
|
||||||
|
private RadioButton radioButtonEnableWathing;
|
||||||
|
private RadioButton radioButtonDisableWathing;
|
||||||
|
private CheckBox checkBoxSaveState;
|
||||||
|
private GroupBox groupBoxProcessName;
|
||||||
|
private GroupBox groupBoxEnabled;
|
||||||
|
private GroupBox groupBoxStatus;
|
||||||
|
private TextBox textBoxArguments;
|
||||||
|
private Label labelArguments;
|
||||||
|
public Label labelStatus;
|
||||||
|
private System.ComponentModel.BackgroundWorker myBackgroundWorker;
|
||||||
|
private NumericUpDown numericUpDown1;
|
||||||
|
}
|
||||||
|
}
|
||||||
228
Form1.cs
Normal file
228
Form1.cs
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using RelaunchProcess.Properties;
|
||||||
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||||
|
|
||||||
|
namespace Process_Auto_Relaunch
|
||||||
|
{
|
||||||
|
public partial class Form1 : Form
|
||||||
|
{
|
||||||
|
private delegate void UpdateLogDelegate(string text);
|
||||||
|
private UpdateLogDelegate updateLogDelegate = null;
|
||||||
|
|
||||||
|
public Form1()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.updateLogDelegate = new UpdateLogDelegate(this.UpdateStatus);
|
||||||
|
myBackgroundWorker.WorkerSupportsCancellation = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ñîáûòèå çàïóñêà ôîðìû
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void Form1_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadOldState();
|
||||||
|
|
||||||
|
|
||||||
|
CheckProgramState();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Âîññòàíîâëåíèå íàñòðîåê
|
||||||
|
/// </summary>
|
||||||
|
private void LoadOldState()
|
||||||
|
{
|
||||||
|
if (Settings.Default.saveOldState)
|
||||||
|
{
|
||||||
|
radioButtonEnableWathing.Checked = Settings.Default.enableWatching;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void radioButtonDisableWathing_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CheckProgramState();
|
||||||
|
|
||||||
|
if (!radioButtonDisableWathing.Checked)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myBackgroundWorker.WorkerSupportsCancellation && myBackgroundWorker.IsBusy)
|
||||||
|
{
|
||||||
|
myBackgroundWorker.CancelAsync();
|
||||||
|
UpdateStatus("Îòìåíÿåì...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void radioButtonEnableWathing_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!radioButtonEnableWathing.Checked)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bool error = false;
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(textBoxProcessName.Text))
|
||||||
|
{
|
||||||
|
error = true;
|
||||||
|
MessageBox.Show("Èìÿ ïðîöåññà íå ìîæåò áûòü ïóñòûì!" +
|
||||||
|
"\nÓêàæèòå èìÿ ïðîöåññà", "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(Settings.Default.startProgramPath))
|
||||||
|
{
|
||||||
|
error = true;
|
||||||
|
MessageBox.Show("Ïðîãðàììà äëÿ çàïóñêà íå óêàçàíà." +
|
||||||
|
"\nÓêàæèòå ïðîãðàììó äëÿ çàïóñêà", "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error)
|
||||||
|
{
|
||||||
|
radioButtonEnableWathing.Checked = false;
|
||||||
|
radioButtonDisableWathing.Checked = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!myBackgroundWorker.IsBusy)
|
||||||
|
{
|
||||||
|
myBackgroundWorker.RunWorkerAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateStatus(string text)
|
||||||
|
{
|
||||||
|
labelStatus.Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Status(string text)
|
||||||
|
{
|
||||||
|
Invoke(updateLogDelegate, new[] { text });
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckProgramState()
|
||||||
|
{
|
||||||
|
bool watching = radioButtonEnableWathing.Checked;
|
||||||
|
Debug.WriteLine($"Íàáëþäåíèå: {watching}");
|
||||||
|
|
||||||
|
groupBoxProcessName.Enabled = !watching;
|
||||||
|
groupBoxProgramStart.Enabled = !watching;
|
||||||
|
groupBoxActions.Enabled = !watching;
|
||||||
|
|
||||||
|
Settings.Default.enableWatching = watching;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Âûáîð ôàéëà äëÿ çàïóñêà
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void buttonSetProgramStart_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OpenFileDialog openFile = new OpenFileDialog();
|
||||||
|
openFile.Title = "Óêàæèòå ïðîãðàììó çàïóñêà";
|
||||||
|
|
||||||
|
if (openFile.ShowDialog() == DialogResult.Cancel)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//labelProgramStartPath.Text = openFile.FileName;
|
||||||
|
Settings.Default.startProgramPath = openFile.FileName;
|
||||||
|
Settings.Default.Save();
|
||||||
|
|
||||||
|
openFile.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ñîáûòèå ïåðåä çàêðûòèåì ôîðìû
|
||||||
|
/// </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)
|
||||||
|
{
|
||||||
|
return Process.GetProcessesByName(name).Length > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessStart(string path, string args)
|
||||||
|
{
|
||||||
|
if (checkBoxCheckProcess.Checked)
|
||||||
|
{
|
||||||
|
if (ProcessByNameIsRuning(path))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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($"Ïðîöåññ {textBoxProcessName.Text} óæå çàïóùåí");
|
||||||
|
i = (int)numericUpDown1.Value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (radioButtonRestartTimer.Checked)
|
||||||
|
{
|
||||||
|
i--;
|
||||||
|
Status($"Ïðîöåññ {textBoxProcessName.Text} íå íàéäåí. Çàïóñê ÷åðåç {i}");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i <= 0 || radioButtonRestartNow.Checked)
|
||||||
|
{
|
||||||
|
Status("Çàïóñêàåì...");
|
||||||
|
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("Íàáëþäåíèå îòìåíåíî.");
|
||||||
|
}
|
||||||
|
else if (e.Error != null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error: " + e.Error.Message, "Îøèáêà", MessageBoxButtons.OK, MessageBoxIcon.Stop);
|
||||||
|
Status("Ïðîèçîøëà îøèáêà. Íàáëþäåíèå îñòàíîâëåíî!");
|
||||||
|
radioButtonDisableWathing.Checked = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Status("Íàáëþäåíèå îñòàíîâëåíî.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1256
Form1.resx
Normal file
1256
Form1.resx
Normal file
File diff suppressed because it is too large
Load Diff
121
Process Auto Relaunch.csproj
Normal file
121
Process Auto Relaunch.csproj
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?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>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{B48F106C-F4E2-4BFB-9BAA-42FC13C03FDD}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<RootNamespace>RelaunchProcess</RootNamespace>
|
||||||
|
<AssemblyName>Relaunch Process</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
<PublishUrl>publish\</PublishUrl>
|
||||||
|
<Install>true</Install>
|
||||||
|
<InstallFrom>Disk</InstallFrom>
|
||||||
|
<UpdateEnabled>false</UpdateEnabled>
|
||||||
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
|
<UpdateInterval>7</UpdateInterval>
|
||||||
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||||
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
|
<UpdateRequired>false</UpdateRequired>
|
||||||
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<StartupObject>RelaunchProcess.Program</StartupObject>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ApplicationIcon>restart_process_sync_loading_refresh_circular_arrow_reload_icon_258809.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Form1.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Form1.Designer.cs">
|
||||||
|
<DependentUpon>Form1.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<EmbeddedResource Include="Form1.resx">
|
||||||
|
<DependentUpon>Form1.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="restart_process_sync_loading_refresh_circular_arrow_reload_icon_258809.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Microsoft .NET Framework 4.8 %28x86 и x64%29</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
|
<Install>false</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
||||||
25
Process Auto Relaunch.sln
Normal file
25
Process Auto Relaunch.sln
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.9.34622.214
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Process Auto Relaunch", "Process Auto Relaunch.csproj", "{A077533B-14A5-4A53-B7DF-B627C6F627C9}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{A077533B-14A5-4A53-B7DF-B627C6F627C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A077533B-14A5-4A53-B7DF-B627C6F627C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A077533B-14A5-4A53-B7DF-B627C6F627C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A077533B-14A5-4A53-B7DF-B627C6F627C9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {4D47AE52-BA80-480A-90CD-19011F1823D6}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
25
Program.cs
Normal file
25
Program.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
using Process_Auto_Relaunch;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using RelaunchProcess.Properties;
|
||||||
|
|
||||||
|
namespace RelaunchProcess
|
||||||
|
{
|
||||||
|
internal static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Ãëàâíàÿ òî÷êà âõîäà äëÿ ïðèëîæåíèÿ.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new Form1());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
33
Properties/AssemblyInfo.cs
Normal file
33
Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// Управление общими сведениями о сборке осуществляется посредством следующего
|
||||||
|
// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
|
||||||
|
// общие сведения об этой сборке.
|
||||||
|
[assembly: AssemblyTitle("Relaunch Process")]
|
||||||
|
[assembly: AssemblyDescription("Утилита для перезапуска процессов после их завершения")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("RelaunchProcess")]
|
||||||
|
[assembly: AssemblyCopyright("")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми
|
||||||
|
// для COM-компонентов. Если требуется обратиться к типу в этой сборке через
|
||||||
|
// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
|
||||||
|
[assembly: Guid("e74041ec-13e1-4a10-b0a4-d7f219a83a30")]
|
||||||
|
|
||||||
|
// Сведения о версии сборки состоят из следующих четырех значений:
|
||||||
|
//
|
||||||
|
// Основной номер версии
|
||||||
|
// Дополнительный номер версии
|
||||||
|
// Номер сборки
|
||||||
|
// Редакция
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
73
Properties/Resources.Designer.cs
generated
Normal file
73
Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// Этот код создан программой.
|
||||||
|
// Исполняемая версия:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||||
|
// повторной генерации кода.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace RelaunchProcess.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
|
||||||
|
/// </summary>
|
||||||
|
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
|
||||||
|
// с помощью такого средства, как ResGen или Visual Studio.
|
||||||
|
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
|
||||||
|
// с параметром /str или перестройте свой проект VS.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RelaunchProcess.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
|
||||||
|
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск локализованного ресурса типа System.Drawing.Icon, аналогичного (Значок).
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Icon restart_process_sync_loading_refresh_circular_arrow_reload_icon_258809 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("restart_process_sync_loading_refresh_circular_arrow_reload_icon_258809", resourceCulture);
|
||||||
|
return ((System.Drawing.Icon)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
124
Properties/Resources.resx
Normal file
124
Properties/Resources.resx
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="restart_process_sync_loading_refresh_circular_arrow_reload_icon_258809" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\restart_process_sync_loading_refresh_circular_arrow_reload_icon_258809.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
110
Properties/Settings.Designer.cs
generated
Normal file
110
Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// Этот код создан программой.
|
||||||
|
// Исполняемая версия:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||||
|
// повторной генерации кода.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace RelaunchProcess.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default {
|
||||||
|
get {
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||||
|
public string startProgramPath {
|
||||||
|
get {
|
||||||
|
return ((string)(this["startProgramPath"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["startProgramPath"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||||
|
public string arguments {
|
||||||
|
get {
|
||||||
|
return ((string)(this["arguments"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["arguments"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||||
|
public bool saveOldState {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["saveOldState"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["saveOldState"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||||
|
public bool enableWatching {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["enableWatching"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["enableWatching"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||||
|
public string processName {
|
||||||
|
get {
|
||||||
|
return ((string)(this["processName"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["processName"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||||
|
public bool checkBeforeStart {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["checkBeforeStart"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["checkBeforeStart"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||||
|
public bool restartNow {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["restartNow"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["restartNow"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
27
Properties/Settings.settings
Normal file
27
Properties/Settings.settings
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="WindowsFormsApp1.Properties" GeneratedClassName="Settings">
|
||||||
|
<Profiles />
|
||||||
|
<Settings>
|
||||||
|
<Setting Name="startProgramPath" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)" />
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="arguments" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)" />
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="saveOldState" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">True</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="enableWatching" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">False</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="processName" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)" />
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="checkBeforeStart" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">True</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="restartNow" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">False</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
Reference in New Issue
Block a user