示例#1
0
        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");
        }
示例#3
0
 void win_Closed(object sender, EventArgs e)
 {
     pipe.StopServer();
 }
示例#4
0
        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();
            };
        }