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);
            }
        }
  • 相关阅读:
    Linux之wget命令
    Markdown语法
    Windows实时预览markdown
    Python基础教程,Python入门教程(非常详细)
    【转载】UNICODE与ASCII的区别
    Python之虚拟环境
    Linux文件系统管理
    Linux权限管理
    linux用户和用户组管理
    linux 软件安装
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878860.html
Copyright © 2011-2022 走看看