diff --git a/Autostart Manager/Autostart Manager.csproj b/Autostart Manager/Autostart Manager.csproj index 504d334..c4a2b62 100644 --- a/Autostart Manager/Autostart Manager.csproj +++ b/Autostart Manager/Autostart Manager.csproj @@ -83,6 +83,7 @@ About.cs + Form diff --git a/Autostart Manager/Helper.cs b/Autostart Manager/Helper.cs new file mode 100644 index 0000000..b001445 --- /dev/null +++ b/Autostart Manager/Helper.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Threading.Tasks; + +namespace Autostart_Manager +{ + internal static class Helper + { + public static List StartItemList = new List(); + + static public void SaveStartItemList(List tuples) + { + using (MemoryStream ms = new MemoryStream()) + { + BinaryFormatter bf = new BinaryFormatter(); + bf.Serialize(ms, tuples); + ms.Position = 0; + byte[] buffer = new byte[(int)ms.Length]; + ms.Read(buffer, 0, buffer.Length); + Properties.Settings.Default.ProgramList = Convert.ToBase64String(buffer); + Properties.Settings.Default.Save(); + } + } + + static public List LoadStartItemList() + { + if (Properties.Settings.Default.ProgramList == null || Properties.Settings.Default.ProgramList == "") + { + return new List(); + } + + using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(Properties.Settings.Default.ProgramList))) + { + BinaryFormatter bf = new BinaryFormatter(); + return (List)bf.Deserialize(ms); + } + } + } +} \ No newline at end of file diff --git a/Autostart Manager/Main.Designer.cs b/Autostart Manager/Main.Designer.cs index fb0e112..ebff0b0 100644 --- a/Autostart Manager/Main.Designer.cs +++ b/Autostart Manager/Main.Designer.cs @@ -73,6 +73,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.listViewMain.FullRowSelect = true; this.listViewMain.GridLines = true; + this.listViewMain.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; this.listViewMain.Location = new System.Drawing.Point(12, 12); this.listViewMain.Name = "listViewMain"; this.listViewMain.ShowItemToolTips = true; @@ -118,6 +119,7 @@ this.MinimumSize = new System.Drawing.Size(367, 202); this.Name = "Main"; this.Text = "Main"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Main_FormClosed); this.SizeChanged += new System.EventHandler(this.Main_SizeChanged); this.ResumeLayout(false); diff --git a/Autostart Manager/Main.cs b/Autostart Manager/Main.cs index 6acceb9..db739a4 100644 --- a/Autostart Manager/Main.cs +++ b/Autostart Manager/Main.cs @@ -1,11 +1,8 @@ using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; using System.Windows.Forms; namespace Autostart_Manager @@ -17,12 +14,11 @@ namespace Autostart_Manager InitializeComponent(); InitilizeListView(); ResizeColumns(); - // LoadList(); + LoadListViewItems(); StartItem si = new StartItem(); si.Name = "Test"; si.Path = "C:/sdasad/sad.exe"; - AddItem(si); } @@ -53,6 +49,14 @@ namespace Autostart_Manager listViewMain.SmallImageList = new ImageList(); } + public void LoadListViewItems() + { + foreach (StartItem item in Helper.StartItemList) + { + AddItem(item); + } + } + public void UpdateListView() { foreach (ListViewItem item in listViewMain.Items) @@ -96,17 +100,12 @@ namespace Autostart_Manager } } - public void LoadList() - { - // Properties.Settings.Default.ProgramList - } - public void SaveList() { - throw new NotImplementedException(); + Helper.SaveStartItemList(Helper.StartItemList); } - private const int StatusWidht = 100; + private const int StatusWidht = 65; public void ResizeColumns() { @@ -129,5 +128,10 @@ namespace Autostart_Manager { MessageBox.Show("Not Implemented"); } + + private void Main_FormClosed(object sender, FormClosedEventArgs e) + { + SaveList(); + } } } \ No newline at end of file diff --git a/Autostart Manager/Program.cs b/Autostart Manager/Program.cs index bf51480..c10c0cb 100644 --- a/Autostart Manager/Program.cs +++ b/Autostart Manager/Program.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; using System.Windows.Forms; namespace Autostart_Manager @@ -14,6 +11,7 @@ namespace Autostart_Manager private static void Main(string[] args) { CommandLine.Parser.Default.ParseArguments(args, options); + Helper.StartItemList = Helper.LoadStartItemList(); if (!options.silent) { @@ -21,28 +19,5 @@ namespace Autostart_Manager Application.Run(new Main()); } } - - private void SaveStartItemList(List tuples) - { - using (MemoryStream ms = new MemoryStream()) - { - BinaryFormatter bf = new BinaryFormatter(); - bf.Serialize(ms, tuples); - ms.Position = 0; - byte[] buffer = new byte[(int)ms.Length]; - ms.Read(buffer, 0, buffer.Length); - Properties.Settings.Default.ProgramList = Convert.ToBase64String(buffer); - Properties.Settings.Default.Save(); - } - } - - private List LoadStartItemList() - { - using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(Properties.Settings.Default.ProgramList))) - { - BinaryFormatter bf = new BinaryFormatter(); - return (List)bf.Deserialize(ms); - } - } } } \ No newline at end of file diff --git a/Autostart Manager/StartItem.cs b/Autostart Manager/StartItem.cs index 714d649..2f9f7ff 100644 --- a/Autostart Manager/StartItem.cs +++ b/Autostart Manager/StartItem.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; namespace Autostart_Manager { + [Serializable] public class StartItem { public string Name { get; set; } @@ -25,6 +26,8 @@ namespace Autostart_Manager Commandline = ""; CurrentStatus = Status.stopped; DisplayedImage = Properties.Resources.DefaultImage; + + Helper.StartItemList.Add(this); } } } \ No newline at end of file