这是一段古老的代码,也是我以前经常用到的代码。虽然现在和以后基本上都不会再用到它了,但是在特定的场景中,它很好用。
使用场景
有时候,我们需要编写一个具有一定处理逻辑的控制台程序,这比编写 Windows 服务要简单一些。但是,我们要防止不小心点击到控制台窗口右上角的关闭按钮而导致程序非正常退出。于是就有了如这篇文章标题所述的一个简单的需求。
代码实现
查找 Windows 窗口和禁用 Windows 窗口的按钮,需要用到 Windows API FindWindow
、GetSystemMenu
和 RemoveMenu
,具体的代码实现如下所示,可以将代码复制到控制台项目中直接运行:
using System;
using System.Runtime.InteropServices;
using System.Threading;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
string title = $"程序 {DateTime.Now} 启动";
//修改控制台窗口标题
Console.Title = title;
//禁用控制台窗口关闭按钮
DisableCloseButton(title);
//检测指定 title 的控制台窗口是否存在
bool isExist = IsExistsConsole(title);
Cons