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();
                }
            }
        }
    }

  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/2096993.html
Copyright © 2011-2022 走看看