WINFORM 便于调试的Shell控制台调用(kernel32.dll)

        WinForm程序没有提供直接输出运行过程的中间参数的方法,因此调试极为不便,写文件的方法占用资源且不能时刻观看,自己写一个控制台又麻烦.此时可以借用Win的控制台来显示System.Console.Write/WriteLine的内容.下面我们来看一下如何使用.


1. 动态链接库kernel32.dll
其中包含两个方法,分别为
- 打开控制台:
public static extern Boolean AllocConsole();  
- 关闭控制台:
public static extern Boolean FreeConsole();

2. 调用显示及关闭
非常简单,直接调用这两个方法即可,当然可以进行封装,具体封装方法见仁见智,我这里提供一个简单案例:
public static class Shell
{
    /// <summary>  
    /// 输出信息  
    /// </summary>  
    public static void WriteLine(string format, params object[] args) 
    {
        WriteLine(string.Format(format, args));
    }
 
    /// <summary>  
    /// 输出信息  
    /// </summary>  
    public static void WriteLine(string output) 
    {
        Console.ForegroundColor = GetConsoleColor(output);
        Console.WriteLine(@"[{0}]{1}", DateTimeOffset.Now, output);
     }
}

3. 控制台输出行设置颜色
/// <summary>  
/// 根据输出文本选择控制台文字颜色  
/// </summary>  
private static ConsoleColor GetConsoleColor(string output) 
{
    if (output.StartsWith("ERR")) return ConsoleColor.Yellow;
    if (output.StartsWith("错误")) return ConsoleColor.Red;
    if (output.StartsWith("注意")) return ConsoleColor.Green;
    return ConsoleColor.Gray;
}
posted @ 2017-09-05 09:35  sunlyk  阅读(309)  评论(0编辑  收藏  举报