通过调用系统API实现打开和关闭控制台:

// 启动控制台
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool AllocConsole();// 释放控制台
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool FreeConsole();

如果你需要实现禁用控制台右上角的关闭按钮(如果直接使用关闭按钮“X”关闭控制台,会导致整个程序退出),还需要调用API:

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, IntPtr bRevert);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags);

1. 打开控制台

public static bool OpenConsole()
{return AllocConsole();
}

如果需要禁用关闭按钮:

public static bool OpenConsole()
{bool flag = AllocConsole();if (flag){//禁用关闭按钮IntPtr windowHandle = GetConsoleWindow();IntPtr closeMenu = GetSystemMenu(windowHandle, IntPtr.Zero);const uint SC_CLOSE = 0xF060;RemoveMenu(closeMenu, SC_CLOSE, 0x0);}return flag;
}

2. 关闭控制台

public static bool CloseConsole()
{return FreeConsole();
}

3. 在控制台中输出

Console.WriteLine("hello world");

如果需要改变输出文字的颜色(默认颜色为灰色):

ConsoleShell.WriteLine("hello world", ConsoleColor.Red);

可以直接定义一个函数用来输出,在函数中可以规定输出的格式、颜色等,如:(每次输出时,都在前面添加当前时间)

public void write(string text, ConsoleColor textColor)
{Console.ForegroundColor = textColor;Console.WriteLine(@"[{0}]  {1}", DateTimeOffset.Now, text);
}

Winform打开和关闭控制台相关推荐

  1. 两个小知识:C#如何设置开机启动时自动执行程序|C# WinForm打开超链接

    通过在Microsft.Win32命名空间的Registry可以在注册表中设置注册表项中的名称/值对的值. 在注册表的"HKEY_CURRENT_USER\Software\Microsof ...

  2. winform打开文件对话框(图片类型)-洋葱先生-杨少通

    winform打开文件对话框(图片类型) 实现功能: ①菜单的打开菜单项点击后弹出对话框. ②使用过滤器功能过滤出相应格式的图片,选择一个图片,点击打开后把所选图片显示到窗体上. ③窗体中拖拽控件:M ...

  3. winform打开cad图纸_CAD打开图纸的方法汇总

    打开文件属于最基本的操作,大家都会,但每个人的习惯不一样,采用的方法也不完全相同,这里简单地将打开文件的各种方法汇总一下. 一.打开(OPEN)命令 这是最基本也是最常用的方法,但调用方法有很多种,可 ...

  4. Winform 打开下载的文件

    private void OpenFile(string filename){ProcessStartInfo sInfo = new ProcessStartInfo();sInfo.WindowS ...

  5. winform打开cad图纸_为什么CAD图纸打开后会显示很多问号“???”,该怎么解决...

    点击上方头条号"机械设计一点通"关注我们,每天学习一个机械设计相关知识点 为什么有些CAD图纸打开以后显示很多问号"???" CAD图纸中很多文字显示问号,大家 ...

  6. C# winform打开Excel文档的方法总结!

    C#打开Excel文档方法一:调用Excel的COM组件 在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Obj ...

  7. C# winform 打开文件选择对话框

    微软文档: https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.win32.openfiledialog?view=netframework-4 ...

  8. winform打开cad图纸_CAD打开文件后发现图纸显示不全怎么办?

    关注不迷路   1.每天持续更新CAD使用技巧和知识点! 2.想一起交流学习CAD的朋友们,可以加入 QQ群:421246724 3.学习资料和视频看群资料 最近有很多同学都有找我问这么一个问题,就是 ...

  9. Winform打开目录或文件

    Winform选择目录路径与选择文件路径 using System.Collections.Generic; using System.ComponentModel; using System.Dat ...

最新文章

  1. python代码运行不了怎么办_selenium ide 生成的 Python 代码无法执行是怎么回事?
  2. 5个步骤,绘制高质量的业务流程图
  3. Android软件开发之盘点自定义View界面大合集(二)
  4. SAP Spartacus 中的依赖注入 Dependency Injection 介绍
  5. 8大策略让你对抗机器学习数据集里的不均衡数据
  6. Android之android studio如何解决‘:app:packageDebug‘.(Duplicate files copied in APK META-INF/DEPENDENCIES)
  7. php excel 分页,excel分页线怎么增加
  8. 华为鸿蒙麒麟玉兔_华为P50除了麒麟9000,还预装鸿蒙系统,比iPhone12值得买
  9. MySQL中的空间扩展
  10. Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
  11. 【Java数据结构】二叉排序树
  12. 《互联网理财一册通》一一第1章 做好互联网理财前的准备工作
  13. 学习笔记20 热传导方程
  14. python从入门到实践 练习题雨滴下落--我的下落时全都连在一起了---已解决
  15. RPG像素游戏角色大合集
  16. RTX 4070TI和RTX 4080差距 RTX4070ti和4080区别对比
  17. java计算机毕业设计游泳馆信息管理系统源码+数据库+系统+部署+lw文档
  18. gitee 链接报错
  19. 区块链学习入门简介(一)
  20. ArcGIS教程:ArcGIS中的报表

热门文章

  1. 计算机毕业设计ssm+vue基本微信小程序的拼车自助服务小程序
  2. Linux周测(一些简单命令touch cat mkdir cp mv rm的简单练习)
  3. 想做游戏测试工程师?这几点不知道可不行!
  4. 智能卷发器的原理和功能
  5. python谁是卧底游戏流程图_谁是卧底游戏题目
  6. 史上绝地反击,美式英语英文学习大全。美国英语最新词频表
  7. 人脸扫描建模_黑科技 | 3D人脸建模可以多简单?一张照片就搞定!
  8. 手把手教你如何用PS抠白底图教程
  9. 华为路由器配置命令汇总
  10. Go的Negroni库