zoukankan      html  css  js  c++  java
  • 在winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序

    在需要屏蔽双击窗体最大化、最小化、关闭、拖拽窗体中写入以下代码,可以根据需要取舍代码: 

    protected override void WndProc(ref Message m)
            {
                if (m.Msg == 0x112)
                {
                    switch ((int)m.WParam)
                    {
                        //禁止双击标题栏关闭窗体
                        case 0xF063:
                        case 0xF093:
                            m.WParam = IntPtr.Zero;
                            break;
    
                        //禁止拖拽标题栏还原窗体
                        case 0xF012:
                        case 0xF010:
                            m.WParam = IntPtr.Zero;
                            break;
    
                        //禁止双击标题栏
                        case 0xf122:
                            m.WParam = IntPtr.Zero;
                            break;
                        
    
                        //允许关闭按钮
                        case 0xF060:
                            //m.WParam = IntPtr.Zero;
                            break;
    
                        //允许最大化按钮
                        case 0xf020:
                            //m.WParam = IntPtr.Zero;
                            break;
    
                        //允许最小化按钮
                        case 0xf030:
                            //m.WParam = IntPtr.Zero;
                            break;
    
                        //允许还原按钮
                        case 0xf120:
                            //m.WParam = IntPtr.Zero;
                            break;
    
                        default:
                            m.WParam = IntPtr.Zero;
                            break;
                    }
                }
                base.WndProc(ref m);
            }
    

     在winform 中利用注册表禁用或启用任务管理器:

    禁用任务管理器:
    Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\System").SetValue("DisableTaskMgr", 1);
    启用任务管理器:
    Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\System").SetValue("DisableTaskMgr", 0);

    上面使用注册表功能需要管理员权限,如果没有管理员权限运行程序会报错,可以加入是否以管理员权限运行的判断:

        public class Utils
        {
            public static bool IsAdministrator()
            {
                WindowsIdentity current = WindowsIdentity.GetCurrent();
                WindowsPrincipal windowsPrincipal = new WindowsPrincipal(current);
                return windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);
            }
        }
  • 相关阅读:
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    20172332 实验一《Java开发环境的熟悉》实验报告
    20172332 《程序设计与数据结构》第二周学习总结
    20172332 《程序设计与数据结构》第一周学习总结
    寒假作业03
    寒假作业02
    寒假作业01
    Java核心技术点之集合框架
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878860.html
Copyright © 2011-2022 走看看