void appStartup(object sender, StartupEventArgs e) { // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <TextGrabNotificationActivator>(); if (e.Args != null && e.Args.Length > 0 && e.Args[0] == "-ToastActivated") { // ManipulateTextWindow mtw = new ManipulateTextWindow(e.Args[1]); // mtw.Show(); } for (int i = 0; i != e.Args.Length; ++i) { if (e.Args[i] == "Settings") { SettingsWindow sw = new SettingsWindow(); sw.Show(); } } if (e.Args.Length == 0) { NormalLaunch(); } }
void appStartup(object sender, StartupEventArgs e) { NumberOfRunningInstances = Process.GetProcessesByName("Text-Grab").Length; // Register COM server and activator type bool handledArgument = false; ToastNotificationManagerCompat.OnActivated += toastArgs => { string argsInvoked = toastArgs.Argument; // Need to dispatch to UI thread if performing UI operations Dispatcher.BeginInvoke((Action)(() => { if (String.IsNullOrWhiteSpace(argsInvoked) == false) { EditTextWindow mtw = new EditTextWindow(argsInvoked); mtw.Show(); handledArgument = true; } })); }; if (Settings.Default.RunInTheBackground == true && NumberOfRunningInstances < 2) { NotifyIconUtilities.SetupNotifyIcon(); } Current.DispatcherUnhandledException += CurrentDispatcherUnhandledException; for (int i = 0; i != e.Args.Length && !handledArgument; ++i) { Debug.WriteLine($"ARG {i}:{e.Args[i]}"); if (e.Args[i].Contains("ToastActivated")) { Debug.WriteLine("Launched from toast"); handledArgument = true; } else if (e.Args[i] == "Settings") { SettingsWindow sw = new SettingsWindow(); sw.Show(); handledArgument = true; } else if (e.Args[i] == "GrabFrame") { GrabFrame gf = new GrabFrame(); gf.Show(); handledArgument = true; } else if (e.Args[i] == "Fullscreen") { WindowUtilities.LaunchFullScreenGrab(); handledArgument = true; } else if (e.Args[i] == "EditText") { EditTextWindow manipulateTextWindow = new EditTextWindow(); manipulateTextWindow.Show(); handledArgument = true; } else if (File.Exists(e.Args[i])) { EditTextWindow manipulateTextWindow = new EditTextWindow(); manipulateTextWindow.OpenThisPath(e.Args[i]); manipulateTextWindow.Show(); handledArgument = true; } } if (!handledArgument) { if (Settings.Default.FirstRun) { FirstRunWindow frw = new FirstRunWindow(); frw.Show(); Settings.Default.FirstRun = false; Settings.Default.Save(); } else { switch (Settings.Default.DefaultLaunch) { case "Fullscreen": WindowUtilities.LaunchFullScreenGrab(); break; case "GrabFrame": GrabFrame gf = new GrabFrame(); gf.Show(); break; case "EditText": EditTextWindow manipulateTextWindow = new EditTextWindow(); manipulateTextWindow.Show(); break; default: EditTextWindow editTextWindow = new EditTextWindow(); editTextWindow.Show(); break; } } } }