public static void Main() { if (SingleInstance <App> .InitializeAsFirstInstance("{E17EF702-0CDB-4CC2-808A-EE33BAA03B34}")) { var application = new App(); // parse requested Uri if present StackHashUri stackHashUri = null; if (StackHashUri.TryParse(Environment.GetCommandLineArgs(), out stackHashUri)) { DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.CurrentCulture, "Command line requests navigation to {0}", stackHashUri.RawUri)); application.CurrentStackHashUri = stackHashUri; } application.InitializeComponent(); application.Run(); // Allow single instance code to perform cleanup operations SingleInstance <App> .Cleanup(); } }
/// <summary /> public bool SignalExternalCommandLineArgs(IList <string> args) { DiagnosticsHelper.LogMessage(DiagSeverity.Information, "Other instance activation..."); // only take action if no owned windows are active if (this.MainWindow.OwnedWindows.Count == 0) { // activate the main window if (this.MainWindow != null) { if (this.MainWindow.WindowState == WindowState.Minimized) { this.MainWindow.WindowState = WindowState.Normal; } this.MainWindow.Activate(); } // parse the requested Uri (if present) and request navigation StackHashUri stackHashUri = null; if (StackHashUri.TryParse(args, out stackHashUri)) { DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.CurrentCulture, "Other instance requests navigation to {0}", stackHashUri.RawUri)); this.CurrentStackHashUri = stackHashUri; if (StackHashUriNavigationRequest != null) { StackHashUriNavigationRequest(this, EventArgs.Empty); } } } else { DiagnosticsHelper.LogMessage(DiagSeverity.Warning, "Other instance activation ignored as owned windows exist"); } return(true); }