public static void Main(string[] args) { if (Environment.OSVersion.Platform != PlatformID.Win32NT) { MessageBox.Show(Properties.Resources.MessageApplicationCannotRun, GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Settings settings = new Settings(); if (!settings.DisableThemes) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); settings.RenderWithVisualStyles = Application.RenderWithVisualStyles; } ArgumentParser argumentParser = new ArgumentParser(); try { argumentParser.Arguments = args; } catch (Exception exception) { Debug.WriteLine(exception); ErrorLog.WriteLine(exception); MessageBox.Show(exception.Message, GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (argumentParser.HasArguments) { if (argumentParser.IsHelp) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine(Properties.Resources.HelpLine1.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine2.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine3.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine4.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine5.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine6.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine7.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine8.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine9.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine10.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine11.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine12.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine13.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine14.Replace("\\t", "\t")); stringBuilder.AppendLine(Properties.Resources.HelpLine15.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine16.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine17.Replace("\\t", "\t")).AppendLine(); stringBuilder.AppendLine(Properties.Resources.HelpLine18.Replace("\\t", "\t")); MessageBox.Show(stringBuilder.ToString(), GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionHelp, MessageBoxButtons.OK, MessageBoxIcon.Question); } else if (argumentParser.IsTest) { try { Application.Run(new TestForm(args)); } catch (Exception exception) { Debug.WriteLine(exception); ErrorLog.WriteLine(exception); MessageBox.Show(exception.Message, GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Properties.Resources.MessageApplicationError, GetTitle(), MessageBoxButtons.OK, MessageBoxIcon.Information); } } else if (argumentParser.IsThisTest) { try { Application.Run(new ArgumentParserForm()); } catch (Exception exception) { Debug.WriteLine(exception); ErrorLog.WriteLine(exception); MessageBox.Show(exception.Message, GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Properties.Resources.MessageApplicationError, GetTitle(), MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { try { LauncherAsDate launcherAsDate = new LauncherAsDate() { ApplicationFilePath = argumentParser.ApplicationFilePath, DateTime = argumentParser.DateTime.Value, Arguments = argumentParser.ApplicationArguments, WorkingFolderPath = argumentParser.WorkingFolderPath, OneInstance = argumentParser.OneInstance, Interval = argumentParser.Interval, DisableTimeCorrection = settings.DisableTimeCorrection, ForceTimeCorrection = settings.ForceTimeCorrection }; launcherAsDate.Launch(); } catch (Exception exception) { Debug.WriteLine(exception); ErrorLog.WriteLine(exception); MessageBox.Show(exception.Message, GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { try { SingleMainForm.Run(new MainForm(settings)); } catch (Exception exception) { Debug.WriteLine(exception); ErrorLog.WriteLine(exception); MessageBox.Show(exception.Message, GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Properties.Resources.CaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Properties.Resources.MessageApplicationError, GetTitle(), MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
public ArgumentParserForm() { Icon = Properties.Resources.Icon; textBoxClicks = 0; textBoxClicksTimer = new Timer(); argumentParser = new ArgumentParser(); InitializeComponent(); Text = Program.GetTitle() + Constants.Space + Constants.EnDash + Constants.Space + Text; statusBarPanel = new StatusBarPanel() { BorderStyle = StatusBarPanelBorderStyle.Sunken, AutoSize = StatusBarPanelAutoSize.Spring, Alignment = HorizontalAlignment.Left }; statusBar.Panels.Add(statusBarPanel); statusBarPanelCapsLock = new StatusBarPanel() { BorderStyle = StatusBarPanelBorderStyle.Sunken, Alignment = HorizontalAlignment.Center, Width = 42 }; statusBar.Panels.Add(statusBarPanelCapsLock); statusBarPanelNumLock = new StatusBarPanel() { BorderStyle = StatusBarPanelBorderStyle.Sunken, Alignment = HorizontalAlignment.Center, Width = 42 }; statusBar.Panels.Add(statusBarPanelNumLock); statusBarPanelInsert = new StatusBarPanel() { BorderStyle = StatusBarPanelBorderStyle.Sunken, Alignment = HorizontalAlignment.Center, Width = 42 }; statusBar.Panels.Add(statusBarPanelInsert); statusBarPanelScrollLock = new StatusBarPanel() { BorderStyle = StatusBarPanelBorderStyle.Sunken, Alignment = HorizontalAlignment.Center, Width = 42 }; statusBar.Panels.Add(statusBarPanelScrollLock); statusBar.ContextMenu = new ContextMenu(); statusBar.ContextMenu.MenuItems.Add(new MenuItem(Properties.Resources.MenuItemCopy, new EventHandler((sender, e) => { if (!string.IsNullOrEmpty(statusBarPanel.Text)) { try { Clipboard.SetText(statusBarPanel.Text); } catch (Exception exception) { Debug.WriteLine(exception); ErrorLog.WriteLine(exception); } } }))); statusBar.ContextMenu.Popup += new EventHandler((sender, e) => { ((ContextMenu)sender).MenuItems[0].Visible = !string.IsNullOrEmpty(statusBarPanel.Text); }); SubscribeEvents(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("/i "); stringBuilder.Append(ArgumentParser.EscapeArgument(Constants.ExampleApplicationFilePath)); stringBuilder.Append(" /d 2019-01-01 /a "); stringBuilder.Append(ArgumentParser.EscapeArgument(Constants.ExampleApplicationArguments)); stringBuilder.Append(" /w "); stringBuilder.Append(ArgumentParser.EscapeArgument(Constants.ExampleWorkingFolderPath)); stringBuilder.Append(" /o /s 5"); textBox1.Text = stringBuilder.ToString(); textBoxInput.Text = Constants.ExampleApplicationArguments; }