protected override void OnStartup(StartupEventArgs e) { // Register AUMID and COM server (for Desktop Bridge apps, this no-ops) DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("WPFAndUWPSample.WPFAndUWPSample"); // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); // If launched from a toast if (e.Args.Contains("-ToastActivated")) { // Our NotificationActivator code will run after this completes, // and will show a window if necessary. } else { // Show the window // In App.xaml, be sure to remove the StartupUri so that a window doesn't // get created by default, since we're creating windows ourselves (and sometimes we // don't want to create a window if handling a background activation). //new MainWindow().Show(); } base.OnStartup(e); }
protected override async void OnInitialized() { // Read more about sending local toast notifications from desktop C# apps // https://docs.microsoft.com/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop // // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <ToastNotificationActivator>("PrismApp"); DesktopNotificationManagerCompat.RegisterActivator <ToastNotificationActivator>(); var persistAndRestoreService = Container.Resolve <IPersistAndRestoreService>(); persistAndRestoreService.RestoreData(); var themeSelectorService = Container.Resolve <IThemeSelectorService>(); themeSelectorService.SetTheme(); var toastNotificationsService = Container.Resolve <IToastNotificationsService>(); toastNotificationsService.ShowToastNotificationSample(); if (_startUpArgs.Contains(DesktopNotificationManagerCompat.ToastActivatedLaunchArg)) { // ToastNotificationActivator code will run after this completes and will show a window if necessary. return; } await Task.CompletedTask; base.OnInitialized(); }
protected override void OnStartup(StartupEventArgs e) { // FIXME this is a workaround to get the squirrel-generated CLSID. // The squirrel-generated AUMID (appUserModelID) also derives a CLSID // used during COM-activation. This needs to be updated in the attribute on MyNotificationActivator. var aumid = "com.squirrel.DesktopToastsApp.DesktopToastsApp"; var assembly = System.Reflection.Assembly.GetAssembly(typeof(Squirrel.UpdateManager)); var type = assembly.GetType("Squirrel.Utility"); var method = type.GetMethod("CreateGuidFromHash", new[] { typeof(string) }); var clsid = (Guid)method.Invoke(null, new object[] { aumid }); // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>(aumid); DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); // If launched from a toast // This launch arg was specified in our WiX installer where we register the LocalServer32 exe path. if (e.Args.Contains(DesktopNotificationManagerCompat.TOAST_ACTIVATED_LAUNCH_ARG)) { // Our NotificationActivator code will run after this completes, // and will show a window if necessary. } else { // Show the window // In App.xaml, be sure to remove the StartupUri so that a window doesn't // get created by default, since we're creating windows ourselves (and sometimes we // don't want to create a window if handling a background activation). new MainWindow().Show(); } base.OnStartup(e); }
protected override void OnStartup(StartupEventArgs e) { DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("JacobHofer.SpotifyMuter"); DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); base.OnStartup(e); }
protected override void OnStartup(StartupEventArgs e) { string shortcutPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.Programs), "NotificationTest.lnk"); var execPath = Process.GetCurrentProcess().MainModule?.FileName; if (!File.Exists(shortcutPath)) { CreateShortcut(shortcutPath, execPath, Storage.AppUserModelId, Storage.ToastActivatorId); } // Register AUMID and COM server (for MSIX/sparse package apps, this no-ops) DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>(Storage.AppUserModelId); // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); base.OnStartup(e); var window = new MainWindow(); window.Show(); }
/// <summary> /// Main method. /// </summary> /// <param name="args">Arguments for the notification.</param> static void Main(string[] args) { //Initialize application type. TODO: Replace this with dependency injection. Globals.ApplicationType = ApplicationTypes.UwpConsole; // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <NotifierActivator>("AppVNextNotifier"); DesktopNotificationManagerCompat.RegisterActivator <NotifierActivator>(); // If launched from a toast notification if (args.Contains(DesktopNotificationManagerCompat.TOAST_ACTIVATED_LAUNCH_ARG)) { //TODO: Handle if launched from a toast notification } else { var arguments = ArgumentManager.ProcessArguments(args); if (arguments == null) { WriteLine($"{Globals.HelpForNullMessage}{Globals.HelpForErrors}"); ArgumentManager.DisplayHelp(); } else { if (arguments.NotificationsCheck) { WriteLine(RegistryHelper.AreNotificationsEnabled(arguments.NotificationCheckAppId)); } if (arguments.PushNotificationCheck) { WriteLine(RegistryHelper.ArePushNotificationsEnabled()); } if (arguments.VersionInformation) { WriteLine(Globals.GetVersionInformation()); } if (arguments.ClearNotifications) { DesktopNotificationManagerCompat.History.Clear(); } if (string.IsNullOrEmpty(arguments.Errors) && !string.IsNullOrEmpty(arguments.Message)) { SendNotification(arguments); while (arguments.Wait) { System.Threading.Thread.Sleep(500); } } else { WriteLine($"{(arguments.Errors ?? string.Empty)}"); } } } }
private async void OnStartup(object sender, StartupEventArgs e) { // Read more about sending local toast notifications from desktop C# apps // https://docs.microsoft.com/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop // // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <ToastNotificationActivator>("BasicApp"); DesktopNotificationManagerCompat.RegisterActivator <ToastNotificationActivator>(); // TODO: Register arguments you want to use on App initialization var activationArgs = new Dictionary <string, string> { { ToastNotificationActivationHandler.ActivationArguments, string.Empty }, }; var appLocation = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); // For more information about .NET generic host see https://docs.microsoft.com/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-3.0 _host = Host.CreateDefaultBuilder(e.Args) .ConfigureAppConfiguration(c => { c.SetBasePath(appLocation); c.AddInMemoryCollection(activationArgs); }) .ConfigureServices(ConfigureServices) .Build(); if (e.Args.Contains(DesktopNotificationManagerCompat.ToastActivatedLaunchArg)) { // ToastNotificationActivator code will run after this completes and will show a window if necessary. return; } await _host.StartAsync(); }
protected override void OnStartup(StartupEventArgs e) { // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("WindowsNotifications.DesktopToasts"); DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); // If launched from a toast // This launch arg was specified in our WiX installer where we register the LocalServer32 exe path. if (e.Args.Contains(DesktopNotificationManagerCompat.TOAST_ACTIVATED_LAUNCH_ARG)) { // Our NotificationActivator code will run after this completes, // and will show a window if necessary. } else { // Show the window // In App.xaml, be sure to remove the StartupUri so that a window doesn't // get created by default, since we're creating windows ourselves (and sometimes we // don't want to create a window if handling a background activation). new MainWindow().Show(); } base.OnStartup(e); }
NotificationService NotificationService.setup() { DesktopNotificationManagerCompat.RegisterAumidAndComServer <TActivator>(AumID); DesktopNotificationManagerCompat.RegisterActivator <TActivator>(); history = DesktopNotificationManagerCompat.History; return(this); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); Application.Run(new Form1()); }
static void Main(string[] args) { DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotification>(AppConfiguration.APP_ID); DesktopNotificationManagerCompat.RegisterActivator <MyNotification>(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Main(args)); }
private void Main_Load(object sender, EventArgs e) { _controller.AttachOnExitEventHandler(); DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotification>(APP_ID); DesktopNotificationManagerCompat.RegisterActivator <MyNotification>(); TryCreateShortcut(); }
public UwpToastNotifier() { Instance = this; CreateShortcut <MyNotificationActivator>(AppId, _appName, true); DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>(AppId); DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); _toastNotifier = DesktopNotificationManagerCompat.CreateToastNotifier(); DesktopNotificationManagerCompat.History.Clear(); }
public PublicAPIInstance(SettingWindowViewModel settingsVM, MainViewModel mainVM, ThemeManager themeManager) { _settingsVM = settingsVM ?? throw new ArgumentNullException(nameof(settingsVM)); _mainVM = mainVM ?? throw new ArgumentNullException(nameof(mainVM)); _themeManager = themeManager ?? throw new ArgumentNullException(nameof(themeManager)); _themeManager.ThemeChanged += OnThemeChanged; WebRequest.RegisterPrefix("data", new DataWebRequestFactory()); DesktopNotificationManagerCompat.RegisterActivator <LauncherNotificationActivator>(); DesktopNotificationManagerCompat.RegisterAumidAndComServer <LauncherNotificationActivator>("PowerToysRun"); }
public ToastHandler(IConfig config, IRpApiHandler apiHandler, ILog log) { _config = config; _apiHandler = apiHandler; _log = log; // Register AUMID and COM server (for Desktop Bridge apps, this no-ops) DesktopNotificationManagerCompat.RegisterAumidAndComServer <ToastActivator>(appId); // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <ToastActivator>(); WriteIconToDisk(); }
public MainWindow() { InitializeComponent(); mw = this; // AUMIDを登録 DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("MyCompany.ToastJikken"); // COMサーバーを登録 DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); }
static void Main() { // Register AUMID and COM server (for Desktop Bridge apps, this no-ops) DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("com.thewired.cwticketninja"); // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Settings()); }
protected override void OnStartup(StartupEventArgs e) { // Setup logging Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .Enrich.WithEnvironmentUserName() .Enrich.WithProcessId() .Enrich.WithExceptionDetails() #if DEBUG .WriteTo.Debug() .WriteTo.File(@"logs\nuc.txt", restrictedToMinimumLevel: LogEventLevel.Verbose) .WriteTo.Seq("http://*****:*****@"logs\nuc.txt", restrictedToMinimumLevel: LogEventLevel.Warning) #endif .CreateLogger(); Log.Information("Start ChocoUpdateNotifier with Args: {Args}", e.Args); // Log unhandled exceptions AppDomain.CurrentDomain.UnhandledException += (_, e) => Log.Fatal(e.ExceptionObject as Exception, "Unhandled Exception"); Application.Current.DispatcherUnhandledException += (_, e) => Log.Fatal(e.Exception, "Unhandled Dispatcher Exception"); TaskScheduler.UnobservedTaskException += (_, e) => Log.Fatal(e.Exception, "Unobserved Task Exception"); // Ensure Logs are saved AppDomain.CurrentDomain.ProcessExit += (s, e) => Log.CloseAndFlush(); // Register AUMID and COM server (for MSIX/sparse package apps, this no-ops) DesktopNotificationManagerCompat.RegisterAumidAndComServer <CunNotificationActivator>(AppId); // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <CunNotificationActivator>(); // Clear all toasts try { DesktopNotificationManagerCompat.History.Clear(); } catch (Exception) { // Ignore errors (when notification service is not available) } // Parse parameters Parser.Default.ParseArguments <CheckOptions, ListOptions>(e.Args) .WithParsed <CheckOptions>(Run) .WithParsed <ListOptions>(Run); if (_exit) { Log.Warning("No valid verb found!"); Environment.Exit(1); } }
public void Run() { DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); //启动所有task service deviceTaskService.Run(); timerTaskService.Run(); processTaskService.Run(); fileTaskService.Run(); keyboardTaskService.Run(); networkStatusTaskService.Run(); bluetoothTaskService.Run(); }
protected override void OnStartup(StartupEventArgs e) { const string appName = "KakaoStroy Notification"; _mutex = new Mutex(true, appName, out bool createdNew); try { DesktopNotificationManagerCompat.RegisterAumidAndComServer <KSPNotificationActivator>(KSP_WPF.MainWindow.APP_ID); DesktopNotificationManagerCompat.RegisterActivator <KSPNotificationActivator>(); } catch (Exception) {} if (Environment.OSVersion.Version.Major != 10) { if (KSP_WPF.Properties.Settings.Default.W10Warn == false) { KSP_WPF.Properties.Settings.Default.Upgrade(); KSP_WPF.Properties.Settings.Default.W10Warn = true; KSP_WPF.Properties.Settings.Default.Save(); MessageBox.Show("현재 버전은 윈도우 7,8 호환모드로 작동하고있습니다.\n윈도우 10을 사용중이시라면 마이크로소프트 스토어에 KakaoStory Manager를 검색하여 스토어 버전을 받아주세요.", "경고"); } } else { if (KSP_WPF.Properties.Settings.Default.Upgraded == false) { KSP_WPF.Properties.Settings.Default.Upgrade(); KSP_WPF.Properties.Settings.Default.Upgraded = true; KSP_WPF.Properties.Settings.Default.Save(); if (MessageBox.Show("프로그램이 업데이트되었습니다.\n변경 내역을 확인하시겠습니까?", "안내", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { System.Diagnostics.Process.Start("https://kagamine-rin.com/?p=186"); } } } if (!createdNew) { if (!KSP_WPF.Properties.Settings.Default.Disable_Message) { GlobalHelper.ShowNotification("안내", "프로그램이 이미 실행중이므로 자동 종료되었습니다.", null); } Current.Shutdown(); } else { new MainWindow().Show(); } base.OnStartup(e); }
public PublicAPIInstance(SettingWindowViewModel settingsVM, MainViewModel mainVM, ThemeManager themeManager) { _settingsVM = settingsVM ?? throw new ArgumentNullException(nameof(settingsVM)); _mainVM = mainVM ?? throw new ArgumentNullException(nameof(mainVM)); _themeManager = themeManager ?? throw new ArgumentNullException(nameof(themeManager)); _themeManager.ThemeChanged += OnThemeChanged; WebRequest.RegisterPrefix("data", new DataWebRequestFactory()); DesktopNotificationManagerCompat.RegisterActivator <LauncherNotificationActivator>(); try { DesktopNotificationManagerCompat.RegisterAumidAndComServer <LauncherNotificationActivator>("PowerToysRun"); } catch (System.UnauthorizedAccessException ex) { Log.Exception("Exception calling RegisterAumidAndComServer. Notifications not available.", ex, MethodBase.GetCurrentMethod().DeclaringType); } }
private async void OnStartup(object sender, StartupEventArgs e) { // Read more about sending local toast notifications from desktop C# apps // https://docs.microsoft.com/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop // // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <ToastNotificationActivator>("LightApp"); DesktopNotificationManagerCompat.RegisterActivator <ToastNotificationActivator>(); AddConfiguration(e.Args); _host = SimpleIoc.Default.GetInstance <IApplicationHostService>(); if (e.Args.Contains(DesktopNotificationManagerCompat.ToastActivatedLaunchArg)) { // ToastNotificationActivator code will run after this completes and will show a window if necessary. return; } await _host.StartAsync(); }
static void Main() { // Register AUMID and COM server (for Desktop Bridge apps, this no-ops) DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("Tomighty"); // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); AppDomain.CurrentDomain.UnhandledException += (sender, args) => HandleUnhandledException(args.ExceptionObject as Exception); Application.ThreadException += (sender, args) => HandleUnhandledException(args.Exception); try { Application.Run(new TomightyApplication()); } catch (Exception e) { Application.Run(new ErrorReportWindow(e)); } }
protected override async void OnStartup(StartupEventArgs e) { // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <AppNotificationActivator>("Schuetze.AssignmentBloodhound"); DesktopNotificationManagerCompat.RegisterActivator <AppNotificationActivator>(); // If launched from a toast if (e.Args.Contains("-ToastActivated")) { // AppNotificationActivator code will run after this completes, // and will show a window if necessary. } else { // Show the window new MainWindow().Show(); } base.OnStartup(e); }
public App() { ServicePointManager.DefaultConnectionLimit = 5000; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; if (isDebugEnabled) { AllocConsole(); } Console.WriteLine("Capella Debug Console Started"); Console.WriteLine("Initializing Capella..."); this.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative); if (Environment.OSVersion.Version.Major >= 6.0) { if (!DwmIsCompositionEnabled()) { MessageBox.Show("Capella looks best with Aero Enabled. It is recommended you turn on Aero when using Capella."); } } // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <NotificationsActivator>(); string updateExeLocation = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(typeof(App).Assembly.Location))); if (File.Exists(updateExeLocation)) { // Don't try to update with Squirrel if we weren't deployed by Squirrel. update(); } // Set the current user interface culture to the specific culture French //System.Threading.Thread.CurrentThread.CurrentUICulture = // new System.Globalization.CultureInfo("fr"); }
public App() { ServicePointManager.DefaultConnectionLimit = 5000; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; if (isDebugEnabled) { AllocConsole(); } Console.WriteLine("Capella Debug Console Started"); Console.WriteLine("Initializing Capella..."); if (accountExists()) { this.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative); } else { this.StartupUri = new Uri("WelcomeWindow.xaml", UriKind.Relative); } if (Environment.OSVersion.Version.Major >= 6.0) { if (!DwmIsCompositionEnabled()) { MessageBox.Show("Capella looks best with Aero Enabled. It is recommended you turn on Aero when using Capella."); } } // Register COM server and activator type DesktopNotificationManagerCompat.RegisterActivator <NotificationsActivator>(); update(); // Set the current user interface culture to the specific culture French System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr"); }
protected override async void OnStartup(StartupEventArgs e) { Forms.Init(); DesktopNotificationManagerCompat.RegisterActivator <WpfNotificationActivator>(); var thread = new Thread(() => { var a = new MSScriptControl.ScriptControl { Language = "jScript" }; a.AddObject("test", new Test(), true); var res = a.Eval("test.b(1)"); }); thread.SetApartmentState(ApartmentState.STA); thread.Start(); await CeilidhLoader.LoadCeilidhAsync(new CeilidhStartOptions(), x => { x.AddManaged <WpfUnitLoader>(); }); }
private void OnTimedEvent(Object source, ElapsedEventArgs e) { client.Send(notCityName); string[] data; string recivedString; recivedString = client.Read(); data = recivedString.Split('|'); String notString = String.Format("Pogoda dla {0}, temp {1}°C, ciśn {2} hPa, wilg {3}%, wiatr {4} km/h", notCityName, data[2], data[3], data[4], data[5]); DesktopNotificationManagerCompat.RegisterAumidAndComServer <NotificationHandler>("Twoja Pogodynka"); DesktopNotificationManagerCompat.RegisterActivator <NotificationHandler>(); ToastContent toastContent = new ToastContentBuilder() .AddToastActivationInfo("", ToastActivationType.Background) .AddText(notString) .GetToastContent(); // And create the toast notification var toast = new ToastNotification(toastContent.GetXml()); // And then show it DesktopNotificationManagerCompat.CreateToastNotifier().Show(toast); }
public App() { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Dispatcher.UnhandledException += Dispatcher_UnhandledException; // Register AUMID, COM server, and activator DesktopNotificationManagerCompat.RegisterAumidAndComServer <UserSchedulerNotificationActivator>("Onevinn.UserScheduler"); DesktopNotificationManagerCompat.RegisterActivator <UserSchedulerNotificationActivator>(); if (Globals.Args.Exist("ToastApp")) { SendAppToast(); Globals.Log.Information("Closing after sending application toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastIpu")) { SendIpuToast(); Globals.Log.Information("Closing after sending IPUApplication toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastSup")) { SendSupToast(); Globals.Log.Information("Closing after sending sup toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastReboot")) { SendRebootToast(); Globals.Log.Information("Closing after sending restart toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastNotifyComingInstallation")) { SendNotifyComingInstallation(); Globals.Log.Information("Closing after sending reminder toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastServiceRestartNotification")) { SendServiceRestartNotification(); Globals.Log.Information("Closing after sending service restart toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastServiceInitNotification")) { SendServiceInitNotification(); Globals.Log.Information("Closing after sending service init toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastServiceRunningNotification")) { SendServiceRunningNotification(); Globals.Log.Information("Closing after sending service init toast."); Environment.Exit(0); } if (Globals.Args.Exist("ToastServiceEndNotification")) { SendServiceEndNotification(); Globals.Log.Information("Closing after sending service end toast."); Environment.Exit(0); } _mutex = new Mutex(true, "ThereCanOnlyBeOneUserScheduler", out var isnew); var otherWindow = Globals.Args.Exist("ShowConfirmWindow") || Globals.Args.Exist("ShowRestartWindow") || Globals.Args.Exist("ShowIpuDialog1") || Globals.Args.Exist("ShowIpuDialog2"); if (!isnew && !otherWindow) { NativeMethods.PostMessage( (IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_SHOWMENOW, IntPtr.Zero, IntPtr.Zero); Environment.Exit(0); } Globals.Settings = SettingsUtils.Settings; }
public static void RegisterNotificationActivator() { /*Register at Com*/ DesktopNotificationManagerCompat.RegisterAumidAndComServer <MyNotificationActivator>("EasyCrawling.EasyCrawling"); DesktopNotificationManagerCompat.RegisterActivator <MyNotificationActivator>(); }