c#中禁用windows的任务管理器的方法

以前制作的桌面锁屏软件虽然也禁用过任务管理器,但是采取的是比较笨的方法,而且对操作系统还有一定的危害。因为任务管理也是一个窗体也就是说它中也是一个独立进程,所以只需要强制性关闭这个进程即可以关闭任务管理器了,任务管理的进程名称为“taskmgr”,在程序用一个单独的计时器,每100毫秒遍历一次系统开启的所有的进程,但凡出现进程的名称与任务管理器名称相同直接关闭。这样就可以间接的达到禁用任务管理的作用,然而这种方法不能够常用,如果经常强制性的关闭任务管理的进程会错乱操作系统的消息处理。所以当时写的桌面管理软件就没有真正的被实用起来。

本次实现禁用任务管理的原理是直接修改系统的注册表,以达到让任务管理器禁用的目的,修改任务管理器的注册表项为:

代码如下:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

在这个项中添加一个键:DisableTaskmgr  ,当值为1的则是禁用任务管理器,当值为0的时候则是启用任务管理器,我的电脑默认是没有system这个项的。

上面将原理已经介绍了,下面将列出如何用c#实现这一功能的代码。


代码如下:

/// <summary>

/// 管理任务管理器的方法
        /// </summary>
        /// <param name="arg">0:启用任务管理器 1:禁用任务管理器</param>
        private void ManageTaskManager(int arg)
        {
            RegistryKey currentUser = Registry.CurrentUser;
            RegistryKey system = currentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System",true );
            //如果system项不存在就创建这个项
            if (system == null)
            {
                system = currentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System");
            }
            system.SetValue("DisableTaskmgr", arg, RegistryValueKind.DWord);
            currentUser.Close();
        }

通过使用这个方法就可以在程序中禁用任务管理器。

还的记住要加上以下的引用才行:
Microsoft.Win32;

(0)

相关推荐

  • NancyFx框架检测任务管理器详解

    本文为大家分享了NancyFx框架检测任务管理器的具体方法,供大家参考,具体内容如下 先建一个空的项目和之前的NancyFx系列一样的步骤 然后建三个文件夹Models,Module,Views 然后分别安装一下组件 jQuery Microsoft.AspNet.SignalR Microsoft.Owin Nancy Nancy.Owin 然后往Model类里面添加CPUHub类,Broadcaster类 CPUHub类 public class CPUHub:Hub { private r

  • 深入C#任务管理器中应用程序选项隐藏程序本身的方法详解

    在C# winform 应用程序中,经常用到这样一种应用:在窗体处于最小化时,隐藏该程序的任务栏图标,在托盘上显示该程序的图标,用以下代码可以实现: 复制代码 代码如下: private void Form1_SizeChanged(object sender, EventArgs e){    if (this.WindowState == FormWindowState.Minimized)    {        this.ShowInTaskbar = false;//隐藏任务栏标签  

  • c#中禁用windows的任务管理器的方法

    以前制作的桌面锁屏软件虽然也禁用过任务管理器,但是采取的是比较笨的方法,而且对操作系统还有一定的危害.因为任务管理也是一个窗体也就是说它中也是一个独立进程,所以只需要强制性关闭这个进程即可以关闭任务管理器了,任务管理的进程名称为"taskmgr",在程序用一个单独的计时器,每100毫秒遍历一次系统开启的所有的进程,但凡出现进程的名称与任务管理器名称相同直接关闭.这样就可以间接的达到禁用任务管理的作用,然而这种方法不能够常用,如果经常强制性的关闭任务管理的进程会错乱操作系统的消息处理.所

  • PowerShell脚本中控制Windows DNS服务的方法

    PowerShell可以很方便的操作WMI,而DNS服务又提供了很好的WMI支持,所以,PowerShell可以通过操作WMI来操作Windows DNS服务. 1.获取DNS对象. 复制代码 代码如下: PS> $mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" 2.创建解析记录,使用CreateInstanceFromTextRepresentation方法. 复制代码 代码如下: PS>

  • BootStrap中按钮点击后被禁用按钮的最佳实现方法

    Bootstrap中点击后禁用按钮与js有什么区别呢要如何来实现呢,今天我们就一起来看一篇关于Bootstrap中点击后禁用按钮的最佳方法,具体的例子如下所示. 为了防止在Bootstrap中点击按钮多次提交,所以希望点击按钮后禁用按钮. 具体实现方法如下: //禁用button $('button').addClass('disabled'); // Disables visually $('button').prop('disabled', true); // Disables visual

  • 在Python中过滤Windows文件名中的非法字符方法

    网上有三种写法: 第一种(所有非法字符都不转义): def setFileTitle(self,title): fileName = re.sub('[\/:*?"<>|]','-',title)#去掉非法字符 self.file = open(fileName + ".txt","w+") \非法字符必须转义,否则\/被解释为/ 第二种(所有非法字符都转义): def validateTitle(title): rstr = r"[

  • ASP.NET中常用的优化性能的方法

    1. 数据库访问性能优化   数据库的连接和关闭  访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求.  连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能.因此,在建立数据库连接后只有在真正需要操作时才打开连接,

  • php禁用函数设置及查看方法详解

    本文实例讲述了php禁用函数设置及查看方法.分享给大家供大家参考,具体如下: 打开PHP.INI,找到这行: disable_functions = 在后面那里加上要禁用的函数,如禁用多个函数,要用半角逗号 , 分开 给个例子: 复制代码 代码如下: disable_functions = passthru,exec,system,popen,chroot,scandir,chgrp,chown,escapesh ellcmd,escapeshellarg,shell_exec,proc_ope

  • C#中Winfrom默认输入法的设置方法

    本文实例讲述了C#中Winfrom默认输入法的设置方法.分享给大家供大家参考.具体分析如下: 在WINFORM中我们经常遇到文本输入框中输入法被禁用或老是变全角输入法等问题,经查阅相关资料,现小结如下: 一.Control.ImeMode 属性:获取或设置控件的输入法编辑器 (IME) 模式. (1)由于窗体属性继承关系,如果你的WINFORM窗体中大部分需要设置为输入法有效状态,可以设置为FORM的ImeMode属性为On. (2)如果需要某些TextBox为输入法有效,则使用ImeMode.

  • VC中实现文字竖排的简单方法(推荐)

    好多人都觉得在VC中实现文字竖排是一件很难的事情,其实可以使用"躺"着的字体很方便的实现文字竖排. Windows中有一些字体是"躺"着的,例如:@Fixedsys.@System.@宋体.@黑体等等,有很多,这些字体和不加@的字体的唯一区别就是用这些字体显示的文字是"躺"着的.如下图: 对这些"躺"着的字体进行270°的旋转就可以实现文字竖排了,效果如下: 以下代码可以产出竖排的宋体. CFont font; CFont *

  • PowerShell查看Windows功能选项的方法

    在Windows Server 2012中使用PowerShell添加和删除Windows角色和功能非常方便,但是在windows 8.1上启用和禁用Windows选项却略显鸡肋. 比如Get-WindowsOptionalFeature获取当前所有的Windows功能选项: 复制代码 代码如下: PS> Get-WindowsOptionalFeature -Online | select * -First 1 FeatureName      : Microsoft-Hyper-V-All

  • SQL Server 2005中更改sa的用户名的方法

    修改数据库SA账号名称的代码如下: 复制代码 代码如下: Alter LOGIN sa DISABLE Alter LOGIN sa WITH NAME = [systemAccount] "systemAccount" 为SA的新名称,执行完成后刷新一下右侧登录名即可看到修改成功的账号名称. SQL Server 2005修改sa用户密码的方法图文版 一.修改SQL Server 2005中sa用户密码的方法 1. 点击"开始 - 所有程序 - Microsoft SQL

随机推荐