public static void GetActivationInfo() { AppActivationArguments args = AppInstance.GetCurrent().GetActivatedEventArgs(); ExtendedActivationKind kind = args.Kind; ReportInfo($"ActivationKind: {kind}"); if (kind == ExtendedActivationKind.Launch) { if (args.Data is ILaunchActivatedEventArgs launchArgs) { string argString = launchArgs.Arguments; string[] argStrings = argString.Split(); foreach (string arg in argStrings) { if (!string.IsNullOrWhiteSpace(arg)) { ReportInfo(arg); } } } } else if (kind == ExtendedActivationKind.File) { if (args.Data is IFileActivatedEventArgs fileArgs) { IStorageItem file = fileArgs.Files.FirstOrDefault(); if (file != null) { ReportInfo(file.Name); } } } }
private static async Task <bool> DetermineActivationKind() { bool isRedirect = false; // Find out what kind of activation this is. AppActivationArguments args = AppInstance.GetCurrent().GetActivatedEventArgs(); ExtendedActivationKind kind = args.Kind; ReportInfo($"ActivationKind={kind}"); if (kind == ExtendedActivationKind.Launch) { // This is a launch activation: here we'll register for file activation. ReportLaunchArgs("Main", args); RegisterForFileActivation(); } else if (kind == ExtendedActivationKind.File) { ReportFileArgs("Main", args); try { // This is a file activation: here we'll get the file information, // and register the file name as our instance key. if (args.Data is IFileActivatedEventArgs fileArgs) { IStorageItem file = fileArgs.Files[0]; AppInstance keyInstance = AppInstance.FindOrRegisterForKey(file.Name); ReportInfo($"Registered key = {keyInstance.Key}"); // If we successfully registered the file name, we must be the // only instance running that was activated for this file. if (keyInstance.IsCurrent) { // Report successful file name key registration. ReportInfo($"IsCurrent=true; registered this instance for {file.Name}"); // Hook up the Activated event, to allow for this instance of the app // getting reactivated as a result of multi-instance redirection. keyInstance.Activated += OnActivated; } else { isRedirect = true; await keyInstance.RedirectActivationToAsync(args); } } } catch (Exception ex) { ReportInfo($"Error getting instance information: {ex.Message}"); } } return(isRedirect); }
private static void OnActivated(object sender, AppActivationArguments args) { ExtendedActivationKind kind = args.Kind; if (kind == ExtendedActivationKind.Launch) { ReportLaunchArgs($"OnActivated ({activationCount++})", args); } else if (kind == ExtendedActivationKind.File) { ReportFileArgs($"OnActivated ({activationCount++})", args); } }
private void GetActivationInfo() { AppActivationArguments args = AppInstance.GetCurrent().GetActivatedEventArgs(); ExtendedActivationKind kind = args.Kind; OutputMessage($"ActivationKind: {kind}"); if (kind == ExtendedActivationKind.Launch) { ILaunchActivatedEventArgs launchArgs = args.Data as ILaunchActivatedEventArgs; if (launchArgs != null) { string argString = launchArgs.Arguments; string[] argStrings = argString.Split(); foreach (string arg in argStrings) { if (!string.IsNullOrWhiteSpace(arg)) { OutputMessage(arg); } } } } else if (kind == ExtendedActivationKind.File) { IFileActivatedEventArgs fileArgs = args.Data as IFileActivatedEventArgs; if (fileArgs != null) { IStorageItem file = fileArgs.Files.FirstOrDefault(); OutputMessage(file.Name); } } else if (kind == ExtendedActivationKind.Protocol) { IProtocolActivatedEventArgs protocolArgs = args.Data as IProtocolActivatedEventArgs; if (protocolArgs != null) { Uri uri = protocolArgs.Uri; OutputMessage(uri.AbsoluteUri); } } else if (kind == ExtendedActivationKind.StartupTask) { IStartupTaskActivatedEventArgs startupArgs = args.Data as IStartupTaskActivatedEventArgs; if (startupArgs != null) { OutputMessage(startupArgs.TaskId); } } }