diff --git a/AIParkingApplication/App.config b/AIParkingApplication/App.config
index 10e04b3..9c2b92e 100644
--- a/AIParkingApplication/App.config
+++ b/AIParkingApplication/App.config
@@ -11,6 +11,7 @@
+
diff --git a/AIParkingApplication/ConfigurationForm.Designer.cs b/AIParkingApplication/ConfigurationForm.Designer.cs
index c9b346f..c52c336 100644
--- a/AIParkingApplication/ConfigurationForm.Designer.cs
+++ b/AIParkingApplication/ConfigurationForm.Designer.cs
@@ -45,6 +45,8 @@
this.chkAllowAutoLogin = new System.Windows.Forms.CheckBox();
this.statusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabelSavedSettingStatus = new System.Windows.Forms.ToolStripStatusLabel();
+ this.lblAllowAutoRun = new System.Windows.Forms.Label();
+ this.chkAllowAutoRunAtStartUp = new System.Windows.Forms.CheckBox();
this.statusStrip.SuspendLayout();
this.SuspendLayout();
//
@@ -83,7 +85,7 @@
this.btnSaveSettings.Location = new System.Drawing.Point(416, 207);
this.btnSaveSettings.Name = "btnSaveSettings";
this.btnSaveSettings.Size = new System.Drawing.Size(106, 41);
- this.btnSaveSettings.TabIndex = 6;
+ this.btnSaveSettings.TabIndex = 0;
this.btnSaveSettings.Text = "Lưu";
this.btnSaveSettings.UseVisualStyleBackColor = true;
this.btnSaveSettings.Click += new System.EventHandler(this.btnSaveSettings_Click);
@@ -206,6 +208,25 @@
this.toolStripStatusLabelSavedSettingStatus.Size = new System.Drawing.Size(110, 17);
this.toolStripStatusLabelSavedSettingStatus.Text = "Cấu hình ứng dụng";
//
+ // lblAllowAutoRun
+ //
+ this.lblAllowAutoRun.AutoSize = true;
+ this.lblAllowAutoRun.Location = new System.Drawing.Point(11, 161);
+ this.lblAllowAutoRun.Name = "lblAllowAutoRun";
+ this.lblAllowAutoRun.Size = new System.Drawing.Size(122, 13);
+ this.lblAllowAutoRun.TabIndex = 9;
+ this.lblAllowAutoRun.Text = "Tự khởi động ứng dụng:";
+ //
+ // chkAllowAutoRunAtStartUp
+ //
+ this.chkAllowAutoRunAtStartUp.AutoSize = true;
+ this.chkAllowAutoRunAtStartUp.Location = new System.Drawing.Point(141, 160);
+ this.chkAllowAutoRunAtStartUp.Name = "chkAllowAutoRunAtStartUp";
+ this.chkAllowAutoRunAtStartUp.Size = new System.Drawing.Size(66, 17);
+ this.chkAllowAutoRunAtStartUp.TabIndex = 5;
+ this.chkAllowAutoRunAtStartUp.Text = "Sử dụng";
+ this.chkAllowAutoRunAtStartUp.UseVisualStyleBackColor = true;
+ //
// ConfigurationForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -216,9 +237,11 @@
this.Controls.Add(this.btnCheckDoorDeviceControlAccessIP);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.btnSaveSettings);
+ this.Controls.Add(this.chkAllowAutoRunAtStartUp);
this.Controls.Add(this.chkAllowAutoLogin);
this.Controls.Add(this.chkAllowUsePrinter);
this.Controls.Add(this.chkAllowChangeROIRect);
+ this.Controls.Add(this.lblAllowAutoRun);
this.Controls.Add(this.chkAllowAutoDoor2);
this.Controls.Add(this.lblAllowAutoLogin);
this.Controls.Add(this.chkAllowAutoDoor1);
@@ -260,5 +283,7 @@
private System.Windows.Forms.CheckBox chkAllowAutoLogin;
private System.Windows.Forms.StatusStrip statusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelSavedSettingStatus;
+ private System.Windows.Forms.Label lblAllowAutoRun;
+ private System.Windows.Forms.CheckBox chkAllowAutoRunAtStartUp;
}
}
\ No newline at end of file
diff --git a/AIParkingApplication/ConfigurationForm.cs b/AIParkingApplication/ConfigurationForm.cs
index ac335ff..b2b680e 100644
--- a/AIParkingApplication/ConfigurationForm.cs
+++ b/AIParkingApplication/ConfigurationForm.cs
@@ -14,6 +14,7 @@ namespace AIParkingApplication
private bool allowUsePrinter;
private bool allowChangeROIRect;
private bool allowAutoLogin;
+ private bool allowAutoRunAtStartUp;
public ConfigurationForm(Logger appLogger)
{
@@ -34,6 +35,15 @@ namespace AIParkingApplication
Util.UpsertAppSettings("USE_PRINTER", chkAllowUsePrinter.Checked.ToString().ToLower());
Util.UpsertAppSettings("ALLOW_CHANGE_ROI_RECT", chkAllowChangeROIRect.Checked.ToString().ToLower());
Util.UpsertAppSettings("AUTO_LOGIN", chkAllowAutoLogin.Checked.ToString().ToLower());
+ Util.UpsertAppSettings("AUTO_RUN_AT_STARTUP", chkAllowAutoRunAtStartUp.Checked.ToString().ToLower());
+ if (chkAllowAutoRunAtStartUp.Checked)
+ {
+ Util.AddApplicationToStartup();
+ }
+ else
+ {
+ Util.RemoveApplicationFromStartup();
+ }
toolStripStatusLabelSavedSettingStatus.Text = $"{DateTime.Now.GetTimeFormatted()} Đã lưu cài đặt";
}
@@ -46,6 +56,7 @@ namespace AIParkingApplication
chkAllowUsePrinter.Checked = allowUsePrinter;
chkAllowChangeROIRect.Checked = allowChangeROIRect;
chkAllowAutoLogin.Checked = allowAutoLogin;
+ chkAllowAutoRunAtStartUp.Checked = allowAutoRunAtStartUp;
}
private void LoadConfiguration()
@@ -56,6 +67,7 @@ namespace AIParkingApplication
bool.TryParse(ReadConfigurationFromAppSettings("USE_PRINTER", "false"), out allowUsePrinter);
bool.TryParse(ReadConfigurationFromAppSettings("ALLOW_CHANGE_ROI_RECT", "false"), out allowChangeROIRect);
bool.TryParse(ReadConfigurationFromAppSettings("AUTO_LOGIN", "false"), out allowAutoLogin);
+ bool.TryParse(ReadConfigurationFromAppSettings("AUTO_RUN_AT_STARTUP", "false"), out allowAutoRunAtStartUp);
}
private string ReadConfigurationFromAppSettings(string configurationKey, string defaultValueIfReadFailed)
diff --git a/AIParkingApplication/Util.cs b/AIParkingApplication/Util.cs
index 11817b8..58706a1 100644
--- a/AIParkingApplication/Util.cs
+++ b/AIParkingApplication/Util.cs
@@ -1,4 +1,5 @@
-using Newtonsoft.Json;
+using Microsoft.Win32;
+using Newtonsoft.Json;
using OpenCvSharp;
using System;
using System.Configuration;
@@ -161,6 +162,22 @@ namespace AIParkingApplication
Width = roi.Width
};
}
+
+ public static void AddApplicationToStartup()
+ {
+ using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
+ {
+ key.SetValue("AIParkingApplication", "\"" + Application.ExecutablePath + "\"");
+ }
+ }
+
+ public static void RemoveApplicationFromStartup()
+ {
+ using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
+ {
+ key.DeleteValue("AIParkingApplication", false);
+ }
+ }
}
public class PlateRequestEngineModel