本文转自:http://www.cnblogs.com/feiyangqingyun/archive/2009/05/26/1489499.html
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(); //用文件流打开任务管理器应用程序而不关闭文件流就会阻止打开任务管理器
呵呵,大家可以自己试试看,可以在此基础上面再修改增加些其他的东西!
下面给出所有代码:
Code
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();
}
}
}
}