C# winform实现从控制台输出

21753阅读 0评论2010-05-10 waderwang
分类:WINDOWS

我们在创建 C# 的console工程时, 可以很简单的使用 Console.writeline() 等函数将输出送到控制台显示. 但是在我们创建winform工程时, 使用Console.writeline()等函数缺不能直接将结果送到控制台显示.
虽然Console.writeline()等函数可以把结果发送到调试环境的output显示,但是当我们所创建的应用程序需要在命令行下工作时, 我们希望在cmd.exe dos串口下,可以直接调用我们的应用程序并传递参数, 例如:
A.exe param1,param2 .. 然后我们的执行结果也通过当前的命令行窗口返回.

总而言之,我们是希望在winform工程里把结果输出到控制台上.

在C#中通过调用api函数: AttachConsole()可以把当前应用程序的控制台连接到它的父进程上.
如下红色代码, 可以实现输出到控制台, 但是当有输出重定向需求时,无法实现:例如: a.exe > a.text.

static class Program
{
        [DllImport("kernel32.dll")]
        static extern bool AttachConsole(int dwProcessId);
        private const int ATTACH_PARENT_PROCESS = -1;

        [STAThread]
        static void Main(string[] args)
        {
            // redirect console output to parent process;
            // must be before any calls to Console.WriteLine()
            AttachConsole(ATTACH_PARENT_PROCESS);

            Console.WriteLine("This is a test");

         

           //..... add code here.

        }

}

上一篇:使用VS2008 编写一个修改hex文件的工具
下一篇:vim 中快捷键跟新cscope数据库