Esempio n. 1
0
        public static void CreateConsole()
        {
            if (IsConsoleCreated)
            {
                return;
            }

            bool UseSystem = !Variables.GetBool("useCustomConsole");

            if (!UseSystem)
            {
                WaitingForForm = true;

                new Thread(delegate()
                {
                    if (cWnd == null)
                    {
                        cWnd = new CustomConsoleWindow();
                        cWnd.ShowDialog();
                    }
                }).Start();

                while (cWnd == null)
                {
                    Thread.Sleep(10);
                }

                IsConsoleCreated = true;
                WaitingForForm   = false;
            }
            else
            {
                AllocConsole();
                Console.CancelKeyPress += Console_CancelKeyPress;

                // stdout's handle seems to always be equal to 7
                IntPtr defaultStdout = new IntPtr(7);
                currentStdout = GetStdHandle(StdOutputHandle);

                if (currentStdout != defaultStdout)
                {
                    // reset stdout
                    SetStdHandle(StdOutputHandle, defaultStdout);
                }

                IsConsoleCreated = true;

                try
                {
                    // reopen stdout
                    TextWriter writer = new StreamWriter(Console.OpenStandardOutput())
                    {
                        AutoFlush = true
                    };
                    Console.SetOut(writer);
                    Console.OutputEncoding = System.Text.Encoding.UTF8;
                }
                catch (Exception ex)
                {
                    EConsole.WriteLine("Can't set Console Output Encoding: " + ex.ToString(), true, ConsoleColor.Red);
                }

                try
                {
                    TextReader reader = new StreamReader(Console.OpenStandardInput());
                    Console.SetIn(reader);
                    Console.InputEncoding = System.Text.Encoding.Unicode;
                }
                catch (Exception ex)
                {
                    EConsole.WriteLine("Can't set Console Input Encoding: " + ex.ToString(), true, ConsoleColor.Red);
                }
            }

            PrintIntro();
            Version cVer = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

            Title = String.Format("CmdSharp {0}.{1}", cVer.Major, cVer.Minor);
        }
Esempio n. 2
0
 public TypeHelperWnd(CustomConsoleWindow w)
 {
     console = w;
     InitializeComponent();
 }