public void Execute() { if (action == CLIParams.REG) { RightMenu.ShiftSetting shift = HasThisParam(CLIParams.SHIFT) ? RightMenu.ShiftSetting.True : RightMenu.ShiftSetting.False; RightMenu.QuickSetting quick = HasThisParam(CLIParams.QUICK) ? RightMenu.QuickSetting.True : RightMenu.QuickSetting.False; RightMenu.Add(shift, quick); } else if (action == CLIParams.UNREG) { RightMenu.QuickSetting quick = HasThisParam(CLIParams.QUICK) ? RightMenu.QuickSetting.True : RightMenu.QuickSetting.False; RightMenu.Delete(quick); } else if (action == CLIParams.MONITOR) { if (ApplicationHelper.IsPasteExMonitorModeProcessExist()) { CommandLine.Error(Resources.Strings.TipMonitorProcessExisted); MessageBox.Show(Resources.Strings.TipMonitorProcessExisted, Resources.Strings.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Monitor mode Application.Run(new FormMain(null)); } else if (action == CLIParams.PASTE) { if (HasThisParam(CLIParams.QUICK)) { // Quick paste mode bool forceOverWrite = HasThisParam(CLIParams.FORCE); if (File.Exists(path)) { string directory = Path.GetDirectoryName(path); if (string.IsNullOrEmpty(directory)) { Console.WriteLine(Resources.Strings.TipTargetPathNotExist); MessageBox.Show(Resources.Strings.TipTargetPathNotExist, Resources.Strings.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning); } ModeController.QuickPasteEx(directory, Path.GetFileName(path), forceOverWrite); } else if (Directory.Exists(path)) { ModeController.QuickPasteEx(path, null, forceOverWrite); } else { string directory = Path.GetDirectoryName(path); if (string.IsNullOrEmpty(directory)) { Console.WriteLine(Resources.Strings.TipTargetPathNotExist); MessageBox.Show(Resources.Strings.TipTargetPathNotExist, Resources.Strings.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning); } ModeController.QuickPasteEx(directory, Path.GetFileName(path), forceOverWrite); } } else { if (!string.IsNullOrEmpty(path)) { // Start the main interface with path Application.Run(new FormMain(path)); } else { // Client.Start(); if (!RightMenu.Init()) { return; } if (Properties.Settings.Default.DefaultStartupMonitorModeEnabled) { // Monitor Mode Entrance 2 ApplicationHelper.StartSelf(CLIParams.MONITOR, false); return; } else { Application.Run(new FormMain()); } } } } else { Application.Run(new FormMain()); } }
static void Main(string[] args) { try { //设置应用程序处理异常方式:ThreadException处理 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); //处理非UI线程异常 AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); I18n.InitCurrentCulture(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); CommandLine.RedirectConsoleOutput(); if (args.Length > 0) { List <string> commands = new List <string>(args); if (commands[0] == "/reg") { if (args.Length > 1) { commands.Remove("/reg"); RightMenu.ShiftSetting shift = commands.Contains("/shift") ? RightMenu.ShiftSetting.True : RightMenu.ShiftSetting.False; RightMenu.FastSetting fast = commands.Contains("/fast") ? RightMenu.FastSetting.True : RightMenu.FastSetting.False; RightMenu.Add(shift, fast); return; } RightMenu.Add(); return; } else if (commands[0] == "/unreg") { RightMenu.FastSetting fast = commands.Contains("/fast") ? RightMenu.FastSetting.True : RightMenu.FastSetting.False; RightMenu.Delete(fast); return; } else if (commands[0] == "/q") { // quick paste mode if (args.Length == 2) { ModeController.QuickPasteEx(commands[1]); return; } else if (args.Length == 3) { ModeController.QuickPasteEx(commands[1], commands[2]); return; } } else if (commands[0] == "monitor") { if (ApplicationHelper.IsPasteExMonitorModeProcessExist()) { MessageBox.Show(Resources.Strings.TipMonitorProcessExisted, Resources.Strings.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // monitor mode Application.Run(new FormMain(null)); return; } // why the disk root directory has '"' ?? if (commands[0].LastIndexOf('"') == commands[0].Length - 1) { commands[0] = commands[0].Substring(0, commands[0].Length - 1); } Application.Run(new FormMain(commands[0])); } else { Client.Start(); if (!RightMenu.Init()) { return; } if (Properties.Settings.Default.DefaultStartupMonitorModeEnabled) { // Monitor Mode Entrance 2 ApplicationHelper.StartSelf("monitor", false); return; } else { Application.Run(new FormMain()); } } } catch (Exception ex) { Logger.Error(ex); } }