c# 實現鎖屏及禁止鍵盤和滑鼠
阿新 • • 發佈:2019-02-16
1.要實現鎖定系統不讓別人用,可以呼叫系統鎖定API函式來實現
//引入API函式
[DllImport("user32 ")]
public static extern bool LockWorkStation();//這個是呼叫windows的系統鎖定
2.API函式鎖定鍵盤及滑鼠
[DllImport("user32.dll")]
static extern void BlockInput(bool Block);
需要的時候就直接寫:
BlockInput(true);//鎖定滑鼠及鍵盤BlockInput(false);//解除鍵盤滑鼠鎖定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 鎖屏 { publicpartialclass Form1 : Form {public Form1() { InitializeComponent(); } //引入API函式 [DllImport("user32 ")] //這個是呼叫windows的系統鎖定publicstaticexternbool LockWorkStation(); [DllImport("user32.dll")] staticexternvoid BlockInput(bool Block); privatevoid 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(); //用檔案流開啟工作管理員應用程式而不關閉檔案流就會阻止開啟工作管理員 } privatevoid lockAll() { BlockInput(true);//鎖定滑鼠及鍵盤 } privatevoid Form1_Load(object sender, EventArgs e) { //this.lockAll();this.lockTaskmgr(); } privatevoid 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(); } } } }