All pastes #1958204 Raw Edit

ChildProcess

public text v1 · immutable
#1958204 ·published 2010-10-09 16:04 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
using System.Diagnostics;
using System.IO.Pipes;
using System.IO;

namespace ChildProcess
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        public static string[] args = {"sdkjfhksdj"};

        private void Application_Startup(object sender, StartupEventArgs e)
        {

        }

        private void Application_Exit(object sender, ExitEventArgs e)
        {            
            if (args.Length > 0)
            {
                using (PipeStream pipeClient = new AnonymousPipeClientStream(PipeDirection.Out, args[0]))
                {
                    // Show that anonymous Pipes do not support Message mode.
                    try
                    {
                        MessageBox.Show("[CLIENT] Setting ReadMode to \"Message\".");
                        pipeClient.ReadMode = PipeTransmissionMode.Message;
                    }
                    catch (NotSupportedException ex)
                    {
                        MessageBox.Show("[CLIENT] Execption:\n    {0}", ex.Message);
                    }

                    MessageBox.Show("[CLIENT] Current TransmissionMode: {0}.", pipeClient.TransmissionMode.ToString());

                    using (StreamReader sr = new StreamReader(pipeClient))
                    {
                        // Display the read text to the console
                        string temp;

                        // Wait for 'sync message' from the server.
                        do
                        {
                            MessageBox.Show("[CLIENT] Wait for sync...");
                            temp = sr.ReadLine();
                        }
                        while (!temp.StartsWith("SYNC"));

                        // Read the server data and echo to the console.
                        while ((temp = sr.ReadLine()) != null)
                        {
                            MessageBox.Show("[CLIENT] Echo: " + temp);
                        }
                    }
                }
            }
            MessageBox.Show("[CLIENT] Press Enter to continue...");
            Console.ReadLine();
        }
    }
}