c#中禁用windows的任務(wù)管理器的方法
以前制作的桌面鎖屏軟件雖然也禁用過任務(wù)管理器,但是采取的是比較笨的方法,而且對操作系統(tǒng)還有一定的危害。因為任務(wù)管理也是一個窗體也就是說它中也是一個獨立進(jìn)程,所以只需要強制性關(guān)閉這個進(jìn)程即可以關(guān)閉任務(wù)管理器了,任務(wù)管理的進(jìn)程名稱為“taskmgr”,在程序用一個單獨的計時器,每100毫秒遍歷一次系統(tǒng)開啟的所有的進(jìn)程,但凡出現(xiàn)進(jìn)程的名稱與任務(wù)管理器名稱相同直接關(guān)閉。這樣就可以間接的達(dá)到禁用任務(wù)管理的作用,然而這種方法不能夠常用,如果經(jīng)常強制性的關(guān)閉任務(wù)管理的進(jìn)程會錯亂操作系統(tǒng)的消息處理。所以當(dāng)時寫的桌面管理軟件就沒有真正的被實用起來。
本次實現(xiàn)禁用任務(wù)管理的原理是直接修改系統(tǒng)的注冊表,以達(dá)到讓任務(wù)管理器禁用的目的,修改任務(wù)管理器的注冊表項為:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
在這個項中添加一個鍵:DisableTaskmgr ,當(dāng)值為1的則是禁用任務(wù)管理器,當(dāng)值為0的時候則是啟用任務(wù)管理器,我的電腦默認(rèn)是沒有system這個項的。
上面將原理已經(jīng)介紹了,下面將列出如何用c#實現(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項不存在就創(chuàng)建這個項
if (system == null)
{
system = currentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System");
}
system.SetValue("DisableTaskmgr", arg, RegistryValueKind.DWord);
currentUser.Close();
}
通過使用這個方法就可以在程序中禁用任務(wù)管理器。
還的記住要加上以下的引用才行:
Microsoft.Win32;
相關(guān)文章
Entity?Framework映射TPH、TPT、TPC與繼承類
這篇文章介紹了Entity?Framework映射TPH、TPT、TPC與繼承類,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06Unity的AssetPostprocessor?Model動畫函數(shù)使用案例深究
這篇文章主要介紹了Unity的AssetPostprocessor?Model動畫函數(shù)使用案例的深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08C#實現(xiàn)日期格式轉(zhuǎn)換的公共方法類實例
這篇文章主要介紹了C#實現(xiàn)日期格式轉(zhuǎn)換的公共方法類,結(jié)合完整實例形式分析了C#針對各種常見日期格式的轉(zhuǎn)換方法,涉及C#字符串、日期、時間相關(guān)操作技巧,需要的朋友可以參考下2017-01-01