1. 程式人生 > >C#鎖定螢幕 鍵盤 滑鼠方法

C#鎖定螢幕 鍵盤 滑鼠方法

1.要實現鎖定系統不讓別人用,可以呼叫系統鎖定API函式來實現

//引入API函式 [DllImport("user32 ")] publicstaticexternbool LockWorkStation();//這個是呼叫windows的系統鎖定

在需要的時候直接寫LockWorkStation();就可以啦!不信試試看!

2.API函式鎖定鍵盤及滑鼠

[DllImport("user32.dll")] staticexternvoid 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 鎖屏 { 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(); } } } }

相關推薦

C#鎖定螢幕 鍵盤 滑鼠方法

1.要實現鎖定系統不讓別人用,可以呼叫系統鎖定API函式來實現 //引入API函式 [DllImport("user32 ")] publicstaticexternbool LockWorkStation();//這個是呼叫windows的系統鎖定 在需要的時候直接寫Loc

Android中隱藏螢幕鍵盤方法

Android中需要隱藏鍵盤的時候(這裡有兩個事件(方法)可以用來對鍵盤進行隱藏和顯示): /** * 隱藏鍵盤 * 彈窗彈出的時候把鍵盤隱藏掉 */ protected void hideInputKeyboard(View v) { InputMethodManager

C#鉤子類 幾乎捕獲鍵盤滑鼠所有事件

using System; using System.Text; using System.Runtime.InteropServices; using System.Reflection; using System.Windows.Forms; namespace Mou

如何在C#中使用全域性滑鼠鍵盤Hook

{                    case WM_LBUTTONDOWN:                        //case WM_LBUTTONUP:                         //case WM_LBUTTONDBLCLK:                     

C#模擬鍵盤滑鼠之一

由於工作當中有部分任務需要使用到模擬鍵盤滑鼠來完成業務的自動呼叫,雖然原來的同事有做了一些共用方法以及使用XML配置檔來配置模擬動作流程,但是公用的方法和XML配置組合起來用的時候還是有不少的麻煩。   配置如下:      光從一些配置上,是比較難以理解的,個人覺得

C語言 模擬鍵盤滑鼠事例

#include<stdio.h> #include<stdlib.h> #include<Windows.h> /* 本程式實現自動搜尋功能,首先是使用 ShellExecuteA() 開啟瀏覽器,然後用鍵盤輸入 (呼叫search(

c語言下對鍵盤滑鼠的控制

 #include <iostream>#include <windows.h>#include <stdlib.h> using namespace std;

c# 如何呼叫win8自帶的螢幕鍵盤(非osk.exe)

private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport("user32.dll", SetLastError =

c#中獲取螢幕滑鼠的座標

獲取螢幕上的滑鼠座標,需要用到timer控制元件,在timer控制元件的timer1_Tick事件中新增:   private void timer1_Tick(object sender, EventArgs e)        {            //方法1:   

C#監測全域性鍵盤滑鼠事件

         在C#中一般不能用SetWindowHookEx監視全域性鍵盤與滑鼠事件,微軟給出的解釋是託管程式不能與非託管共享連結庫互動,在網上找了老半天才發現了這個解決方案,拿出來與大家分享一下,希望可以節約對這方面又需求和希望學習的朋友們的時間.  

VMware直接使用主機USB HID(包含USB鍵盤滑鼠)的方法

這篇文章是3個網友的文章,不過有些東西我也沒有嘗試,所以就還是把他們的方法給分別列開了!首先先回答大家的幾個疑問:1. 既然我的滑鼠都能夠在虛擬機器系統下面執行起來,還要這個破爛HID幹什麼?  不一樣的,這個是真正的HID,在裝置管理器中可以找到它們的裝置。並且是以真正的HID驅動來動起來的。我以前就是為了

記錄C#中的擴展方法

也不能 sea eal 我們 數列 繼承 開頭 類型 自帶 C#中的擴展方法。 系統自帶的類型,我們無法去修改; 修改源代碼需要較大的精力,而且可能會帶來錯誤; 我們只是需要一個或者較少的幾個方法,修改源代碼費時費力; 被擴展的類是sealed的,不能被繼承;(

C# 各種導出的方法總結

src view str inf object ret temp ksh 驅動程序 第一種:使用 Microsoft.Office.Interop.Excel.dll 首先需要安裝 office 的 excel,然後再找到 Microsoft.Office.Interop.

C/C++獲取本地時間常見方法

ptr 顯示 mark 周期 基本 names 函數返回 pos down 跨平臺方法 方法一:手動暴力法 #include <iostream> using namespace std; #include <time.h>

C#殺掉進程的方法

c# processes code .get string mar pre col for C#殺掉進程的方法 1 private static string CmdName = "cmd"; 2 /// <summary> 3 /// 關閉進程

C#函數的使用方法

存在 步驟 例子 stat logs font 參數類型 color 及其 函數不管在哪個語言中都是及其重要的一環,無論是怎樣的程序都是由或多或少的函數組合起來的。一個函數的使用,分為聲明和調用兩個步驟。 函數的聲明 static 返回類型 函數名(參數列表) {

C#設計模式之工廠方法模式

實例 names 添加 創建 日誌 ring lin 數據庫日誌 連接數據庫 using System; using System.Collections.Generic; using System.Linq; using System.Text; //工廠

c語言產生隨機數的方法

c語言產生隨機數 定義函數 rand 正態分布 time pri 行程 程序 現在 用c語言產生隨機數的方法 一、 //************************************ 偽隨機數 在C語言中,rand()函數可以用來產生隨機數,但是這不是真正意義上的

C#調用非托管C++DLL的兩種方法

sso tro medium direction ive 之間 測試工程 win bug C#編寫的代碼屬於跨平臺的托管代碼,C++語言可以編寫托管(managed)和非托管(native)代碼。在C#與C++的混合編程中,經常會使用C#來調用native C++的DL

C#枚舉擴展方法,獲取枚舉值的描述值以及獲取一個枚舉類下面所有的元素

cache dict logs int info 擴展方法 attrs format 獲取 /// <summary> /// 枚舉擴展方法 /// </summary> public static class EnumEx