c#中禁用windows的任務(wù)管理器的方法
以前制作的桌面鎖屏軟件雖然也禁用過任務(wù)管理器,但是采取的是比較笨的方法,而且對操作系統(tǒng)還有一定的危害。因?yàn)槿蝿?wù)管理也是一個(gè)窗體也就是說它中也是一個(gè)獨(dú)立進(jìn)程,所以只需要強(qiáng)制性關(guān)閉這個(gè)進(jìn)程即可以關(guān)閉任務(wù)管理器了,任務(wù)管理的進(jìn)程名稱為“taskmgr”,在程序用一個(gè)單獨(dú)的計(jì)時(shí)器,每100毫秒遍歷一次系統(tǒng)開啟的所有的進(jìn)程,但凡出現(xiàn)進(jìn)程的名稱與任務(wù)管理器名稱相同直接關(guān)閉。這樣就可以間接的達(dá)到禁用任務(wù)管理的作用,然而這種方法不能夠常用,如果經(jīng)常強(qiáng)制性的關(guān)閉任務(wù)管理的進(jìn)程會(huì)錯(cuò)亂操作系統(tǒng)的消息處理。所以當(dāng)時(shí)寫的桌面管理軟件就沒有真正的被實(shí)用起來。
本次實(shí)現(xiàn)禁用任務(wù)管理的原理是直接修改系統(tǒng)的注冊表,以達(dá)到讓任務(wù)管理器禁用的目的,修改任務(wù)管理器的注冊表項(xiàng)為:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
在這個(gè)項(xiàng)中添加一個(gè)鍵:DisableTaskmgr ,當(dāng)值為1的則是禁用任務(wù)管理器,當(dāng)值為0的時(shí)候則是啟用任務(wù)管理器,我的電腦默認(rèn)是沒有system這個(gè)項(xiàng)的。
上面將原理已經(jīng)介紹了,下面將列出如何用c#實(shí)現(xiàn)這一功能的代碼。
/// <summary>
/// 管理任務(wù)管理器的方法
/// </summary>
/// <param name="arg">0:啟用任務(wù)管理器 1:禁用任務(wù)管理器</param>
private void ManageTaskManager(int arg)
{
RegistryKey currentUser = Registry.CurrentUser;
RegistryKey system = currentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System",true );
//如果system項(xiàng)不存在就創(chuàng)建這個(gè)項(xiàng)
if (system == null)
{
system = currentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System");
}
system.SetValue("DisableTaskmgr", arg, RegistryValueKind.DWord);
currentUser.Close();
}
通過使用這個(gè)方法就可以在程序中禁用任務(wù)管理器。
還的記住要加上以下的引用才行:
Microsoft.Win32;
相關(guān)文章
C#基于TCP協(xié)議的服務(wù)器端和客戶端通信編程的基礎(chǔ)教程
這篇文章主要介紹了C#基于TCP協(xié)議的服務(wù)器端和客戶端通信編程的基礎(chǔ)教程,文中講解了C#中TCP編程主要相關(guān)的TcpListener類與TcpClient類用法,需要的朋友可以參考下2016-04-04
WinForm實(shí)現(xiàn)關(guān)閉按鈕不可用或隱藏的方法
這篇文章主要介紹了WinForm實(shí)現(xiàn)關(guān)閉按鈕不可用或隱藏的方法,很實(shí)用的功能,需要的朋友可以參考下2014-08-08
C#調(diào)用C++的dll兩種實(shí)現(xiàn)方式(托管與非托管)
這篇文章主要介紹了C#調(diào)用C++的dll兩種實(shí)現(xiàn)方式(托管與非托管),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
C#中使用DataContractSerializer類實(shí)現(xiàn)深拷貝操作示例
這篇文章主要介紹了C#中使用DataContractSerializer類實(shí)現(xiàn)深拷貝操作示例,本文給出了實(shí)現(xiàn)深拷貝方法、測試深拷貝方法例子、DataContractSerializer類實(shí)現(xiàn)深拷貝的原理等內(nèi)容,需要的朋友可以參考下2015-06-06
使用c#實(shí)現(xiàn)隨機(jī)數(shù)猜數(shù)游戲的示例代碼
這篇文章主要介紹了使用c#實(shí)現(xiàn)隨機(jī)數(shù)猜數(shù)游戲的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
C#?漢字與拼音互轉(zhuǎn)的實(shí)現(xiàn)示例
本文主要介紹了C#?漢字與拼音互轉(zhuǎn)的實(shí)現(xiàn)示例,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
DevExpress實(shí)現(xiàn)GridControl同步列頭checkbox與列中checkbox狀態(tài)
這篇文章主要介紹了DevExpress實(shí)現(xiàn)GridControl同步列頭checkbox與列中checkbox狀態(tài),需要的朋友可以參考下2014-08-08

