C#中的WinForm调用控制台进行信息显示

有时需要窗体来调出控制台,显示日志文件中正在发生的记录。

这时就需要用AllocConsole()


        [DllImport("Kernel32.dll")]

       private staticextern bool AllocConsole();


        [DllImport("kernel32.dll",

            EntryPoint ="GetStdHandle",

            SetLastError =true,

            CharSet =CharSet.Auto,

            CallingConvention =CallingConvention.StdCall)]

       private staticextern IntPtr GetStdHandle(int nStdHandle);


       private constint STD_OUTPUT_HANDLE = -11;


        privatevoid setOutput()

        {

            AllocConsole();

           IntPtr stdHandle = GetStdHandle(STD_OUTPUT_HANDLE);

           SafeFileHandle safeFileHandle = new SafeFileHandle(stdHandle, true);

           FileStream fileStream = new FileStream(safeFileHandle, FileAccess.Write);

           Encoding encoding = System.Text.Encoding.GetEncoding(Console.OutputEncoding.CodePage);

           StreamWriter standardOutput = new StreamWriter(fileStream, encoding);

            standardOutput.AutoFlush =true;

           Console.SetOut(standardOutput);


        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值