zoukankan      html  css  js  c++  java
  • c#实现锁屏及禁止键盘和鼠标

    1.要实现锁定系统不让别人用,可以调用系统锁定API函数来实现

    //引入API函数
            [DllImport("user32 ")]
            public static extern bool LockWorkStation();//这个是调用windows的系统锁定

    在需要的时候直接写LockWorkStation();就可以啦!不信试试看!

    2.API函数锁定键盘及鼠标

    [DllImport("user32.dll")]
            static extern void BlockInput(bool Block);

    需要的时候就直接写:

    BlockInput(true);//锁定鼠标及键盘

    BlockInput(false);//解除键盘鼠标锁定

    但是这种方式还是不能锁定ctrl+alt+delete,也就是还可以打开任务管理器,怎么办呢?

    请看下面的方法:

    3.屏蔽ctrl+alt+delete

    FileStream fs = new FileStream(Environment.ExpandEnvironmentVariables("%windir%\\system32\\taskmgr.exe"), FileMode.Open);
                //byte[] Mybyte = new byte[(int)MyFs.Length];
                //MyFs.Write(Mybyte, 0, (int)MyFs.Length);
                //MyFs.Close(); //用文件流打开任务管理器应用程序而不关闭文件流就会阻止打开任务管理器

    呵呵,大家可以自己试试看,可以在此基础上面再修改增加些其他的东西!

    下面给出所有代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using Microsoft.Win32;
    using System.IO;

    namespace 锁屏
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            //引入API函数
            [DllImport("user32 ")]
            public static extern bool LockWorkStation();//这个是调用windows的系统锁定
            [DllImport("user32.dll")]
            static extern void BlockInput(bool Block);          

            private void lockTaskmgr()//锁定任务管理器
            {
                FileStream fs = new FileStream(Environment.ExpandEnvironmentVariables("%windir%\\system32\\taskmgr.exe"), FileMode.Open);
                //byte[] Mybyte = new byte[(int)MyFs.Length];
                //MyFs.Write(Mybyte, 0, (int)MyFs.Length);
                //MyFs.Close(); //用文件流打开任务管理器应用程序而不关闭文件流就会阻止打开任务管理器
            }

            private void lockAll()
            {
                BlockInput(true);//锁定鼠标及键盘
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                //this.lockAll();
                this.lockTaskmgr();
            }

            private void btnUnlock_Click(object sender, EventArgs e)
            {
                if (txtPwd.Text == "19880210")
                {
                    BlockInput(false);
                    Application.Exit();
                }
                else
                {
                    MessageBox.Show("密码错误!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtPwd.Text = "";
                    txtPwd.Focus();
                }
            }
        }
    }

  • 相关阅读:
    487-3279(电话号码)
    【模板】二分图匹配
    【模板】网络最大流
    P3879 [TJOI2010]阅读理解
    10.10 考试T1 低仿机器人
    P4025 [PA2014]Bohater
    线段树合并 从入门到入土
    CF547B Mike and Feet
    10.6洛谷月赛划水记
    P4552 [Poetize6] IncDec Sequence
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/2096993.html
Copyright © 2011-2022 走看看