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

  • 相关阅读:
    Codeforces Round #124 (Div. 2)
    Codeforces Round #158 (Div. 2)
    Codeforces round FF
    缕缕,
    拉伸 原来 就这一句话,
    tableveiw上面 的手势,
    reloaddata 是没有对 tableview的 headerview进行 刷新的,
    y
    考虑欠缺 以及 设计 导致的 工作量,
    present出来的 controller上的 controller里面用 navigationcontrolle了,失效了,
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/2096993.html
Copyright © 2011-2022 走看看