private void Application_Startup(object sender, StartupEventArgs e) { try { // set language Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN"); string root = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]); Environment.CurrentDirectory = root; pipe = new NamedPipeManager(Name); if (!pipe.SingleServer()) { if (e.Args.Length == 1) { pipe.Write(e.Args[0]); } Environment.Exit(0); } pipe.ReceiveString += pipe_ReceiveString; pipe.StartServer(); var win = new UserWindow(); win.Closed += win_Closed; win.Show(); } catch (Exception _e) { MessageBox.Show(_e.Message); Application.Current.Shutdown(); pipe.StopServer(); } }
public void NamedPipeManager() { string result = string.Empty; var manager = new NamedPipeManager("MarkdownMonster_Tests"); manager.ReceiveString += (s) => { Console.WriteLine("Received results: " + s); result += s + "\r\n"; }; manager.StartServer(); Thread.Sleep(200); // allow thread to spin up var manager2 = new NamedPipeManager("MarkdownMonster_Tests"); manager2.Write("Hello World"); manager2.Write("Goodbye World"); manager.StopServer(); Thread.Sleep(200); Assert.IsFalse(string.IsNullOrEmpty(result), "Result shouldn't be null"); }
void win_Closed(object sender, EventArgs e) { pipe.StopServer(); }
public MainWindow( MainWindowVM viewModel, IDialogService dialogService, IRuntimeDataService runtimeDataService) { _dialogService = dialogService; _runtimeDataService = runtimeDataService; InitializeComponent(); WindowChrome windowChrome = new WindowChrome() { CaptionHeight = 55, CornerRadius = new CornerRadius(0), GlassFrameThickness = new Thickness(0), NonClientFrameEdges = NonClientFrameEdges.None, ResizeBorderThickness = new Thickness(6), UseAeroCaptionButtons = false }; WindowChrome.SetWindowChrome(this, windowChrome); _namedPipeManager = new NamedPipeManager("TwitchLeecher"); _namedPipeManager.OnMessage += OnPipeMessage; _namedPipeManager.StartServer(); // Hold reference to FontAwesome library ImageAwesome.CreateImageSource(FontAwesomeIcon.Times, Brushes.Black); SizeChanged += (s, e) => { if (WindowState == WindowState.Normal) { WidthNormal = Width; HeightNormal = Height; } }; LocationChanged += (s, e) => { if (WindowState == WindowState.Normal) { TopNormal = Top; LeftNormal = Left; } }; Loaded += (s, e) => { HwndSource.FromHwnd(new WindowInteropHelper(this).Handle).AddHook(new HwndSourceHook(WindowProc)); DataContext = viewModel; if (viewModel != null) { viewModel.Loaded(); } LoadWindowState(); }; Activated += (s, e) => { if (viewModel != null && !_shown) { _shown = true; viewModel.Shown(); } }; Closed += (s, e) => { SaveWindowState(); _namedPipeManager.StopServer(); }; }