• c# 控制台程序禁用关闭按钮完美解决


    在做项目的时候需要这样一个功能,让控制台程序不能随意关闭。找了半天资料,终于通过WINDOWS的API完美解决了。如下

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace ConsoleApplication1
    {
    class Program
    {
    [DllImport(
    "User32.dll ", EntryPoint = "FindWindow")]
    private static extern int FindWindow(string lpClassName, string lpWindowName);

    [DllImport(
    "user32.dll ", EntryPoint = "GetSystemMenu")]
    extern static IntPtr GetSystemMenu(IntPtr hWnd, IntPtr bRevert);

    [DllImport(
    "user32.dll ", EntryPoint = "RemoveMenu")]
    extern static int RemoveMenu(IntPtr hMenu, int nPos, int flags);

    static void Main(string[] args)
    {
    //与控制台标题名一样的路径
    string fullPath = System.Environment.CurrentDirectory +"\\ConsoleApplication1.exe";
    //根据控制台标题找控制台
    int WINDOW_HANDLER = FindWindow(null, fullPath);
    //找关闭按钮
    IntPtr CLOSE_MENU = GetSystemMenu((IntPtr)WINDOW_HANDLER, IntPtr.Zero);
    int SC_CLOSE = 0xF060;
    //关闭按钮禁用
    RemoveMenu(CLOSE_MENU, SC_CLOSE, 0x0);

    //使用命令关闭
    while (true)
    {
    if (Console.ReadLine().ToLower() == "exit")
    {
    return;
    }
    }
    }
    }
    }
  • 相关阅读:
    SSM环境搭建
    spring 开发 Tars
    Tars --- Hello World
    Java IO流
    Java集合
    常用类
    Pwn With longjmp
    格式化字符串漏洞利用实战之 njctf-decoder
    一步一步 Pwn RouterOS之ctf题练手
    srop实战
  • 原文地址:https://www.cnblogs.com/xinjian/p/1783358.html
Copyright © 2020-2023  润新知