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

  • 相关阅读:
    关于接口是值类型还是引用类型的猜测
    絮语工作四年的碎碎念
    烧钱游戏加入创业公司的一些感想
    关于C#调用非托管动态库方式的性能疑问
    couchbase作为分布式session容器时的注意事项
    poj3624
    明天的下载链接
    poj 1502
    poj1459 多源多汇最大流
    poj 3041
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/2096993.html
Copyright © 2020-2023  润新知