public override void OnActivated(string invokedArgs, NotificationUserInput userInput, string appUserModelId) { System.Windows.Application.Current.Dispatcher.Invoke(delegate { // Tapping on the top-level header launches with empty args if (invokedArgs.Length != 0) { // Perform a normal launch EditTextWindow mtw = new EditTextWindow(invokedArgs); mtw.Show(); return; } }); }
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; } } } }