将c#控制台程序关闭按钮取消
2014-06-23 23:19
288 查看
最近开发了一个控制台程序,但总是被其他人无意中关掉,所以就找了一下资料,下面的代码测试成功,可以取消关闭按钮的操作。(注:调试环境下该功能是无效的*_*)
代码 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; } } } } }
相关文章推荐
- c# 控制台程序禁用关闭按钮完美解决
- C# 控制台实现关闭前的操作,并使关闭按钮无法使用
- 蛋疼的让C#控制台程序(Console)像窗体(Winform)一样(关闭,托盘图标,事件响应,手动退出等)
- C#控制台屏蔽关闭按钮
- C#控制台程序实现开启、关闭SQLServer服务的代码分享
- 蛋疼的让C#控制台程序(Console)像窗体(Winform)一样(关闭,托盘图标,事件响应,手动退出等)
- C# WinForm开发 取消窗体关闭按钮(整理)
- C#控制台程序中处理2个关闭事件的代码实例
- c# winform取消右上角关闭按钮的实现方法
- C#使用API禁用/删除程序窗体的关闭菜单和按钮
- C# WinForm开发 取消窗体关闭按钮(整理)
- C#小程序:使用API禁用窗体关闭按钮
- C#控制台程序中处理2个关闭事件的代码实例
- C# 控制台实现关闭前的操作,并使关闭按钮无法使用
- C# WinForm开发 取消窗体关闭按钮
- C#使用API禁用/删除程序窗体的关闭菜单和按钮
- c# winform取消右上角关闭按钮的实现方法
- [C#]winform 取消右上角关闭按钮方法
- c# 做的登录窗体,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程怎么办
- C# WinForm开发 取消窗体关闭按钮