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;
}
欢迎C#或Winform技术交流,C#交流群:83868794