C# WinForm 屏蔽 ctrl+alt+delete win10

   此方法调用时是让winlogo挂起,会涉及到不少问题,比如当挂起时无法关机、无法重启、进入睡眠或者关闭显示器后必须强制重启才
   能进入系统、按下WIN+L切换账户时会一直显示登录界面的蓝色背景。恢复挂起后上述问题全部解决
    #region 屏蔽管理器

    [DllImport("ntdll.dll")]
    public static extern int ZwSuspendProcess(IntPtr ProcessId);
    [DllImport("ntdll.dll")]
    public static extern int ZwResumeProcess(IntPtr ProcessId);

    /// <summary>
    /// 屏蔽管理器
    /// </summary>
    public static void SuspendWinLogon()
    {
        Process[] pc = Process.GetProcessesByName("winlogon");
        if (pc.Length > 0)
        {
            ZwSuspendProcess(pc[0].Handle);
        }
    }

    /// <summary>
    /// 恢复管理器
    /// </summary>
    public static void ResumeWinLogon()
    {
        Process[] pc = Process.GetProcessesByName("winlogon");
        if (pc.Length > 0)
        {
            ZwResumeProcess(pc[0].Handle);
        }
    }

    #endregion

调用方式

    /// <summary>
    /// LOAD
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void key_Load(object sender, EventArgs e)
    {
    //屏蔽管理器
        SuspendWinLogon();
    }

    /// <summary>
    /// 关闭程序
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void key_FormClosing(object sender, FormClosingEventArgs e)
    {
        //禁用恢复
        ResumeWinLogon();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值