`

C# 操作注册表

 
阅读更多

首先我们来熟悉一下C#中修改注册表的方法与函数。在VC#中提供了Registry类、RegistryKey类来实现对注册表的操作。其中Registry类封装了注册表的七个基本主健:

    Registry.ClassesRoot 对应于 HKEY_CLASSES_ROOT 主键
  Registry.CurrentUser 对应于 HKEY_CURRENT_USER 主键
  Registry.LocalMachine 对应于 HKEY_LOCAL_MACHINE 主键
  Registry.User 对应于 HKEY_USER 主键
  Registry.CurrentConfig 对应于 HEKY_CURRENT_CONFIG 主键
  Registry.DynDa 对应于 HKEY_DYN_DATA 主键
  Registry.PerformanceData 对应于 HKEY_PERFORMANCE_DATA 主键

RegistryKey类封装了对注册表的基本操作,包括读取,写入,删除。其中读取的主要函数有:

    OpenSubKey ( string name )方法主要是打开指定的子键。
  GetSubKeyNames ( )方法是获得主键下面的所有子键的名称,它的返回值是一个字符串数组。
  GetValueNames ( )方法是获得当前子键中的所有的键名称,它的返回值也是一个字符串数组。
  GetValue ( string name )方法是指定键的键值。

写入的函数有:

CreateSubKey (string name)方法是增加一个子键
SetValue(string name,string value)方法是设置一个键的键值

删除的函数:

DeleteSubKey ( )方法:删除一个指定的子键。
DeleteSubKeyTree ( )方法:此方法是彻底删除指定的子键目录,即:删除该子键以及该子键以下的全部子键。

 

 参数 valueKind 指定使用的注册表数据类型:
RegistryValueKind 枚举定义受支持的注册表数据类型集以及不受支持的类型 (Unknown) 使用的值。
Binary 指定任意格式的二进制数据。此值与 Win32 API 注册表数据类型 REG_BINARY 等效。
DWord 指定一个 32 位二进制数。此值与 Win32 API 注册表数据类型 REG_DWORD 等效。
ExpandString 指定一个以 NULL 结尾的字符串,该字符串中包含对环境变量(如 %PATH%,当值被检索时,就会展开)的未展开的引用。此值与 Win32 API 注册表数据类型 REG_EXPAND_SZ 等效。
MultiString 指定一个以 NULL 结尾的字符串数组,以两个空字符结束。此值与 Win32 API 注册表数据类型 REG_MULTI_SZ 等效。
QWord 指定一个 64 位二进制数。此值与 Win32 API 注册表数据类型 REG_QWORD 等效。
String 指定一个以 Null 结尾的字符串。此值与 Win32 API 注册表数据类型 REG_SZ 等效。
Unknown 指示一个不受支持的注册表数据类型。例如,不支持 Microsoft Win32 API 注册表数据类型 REG_RESOURCE_LIST。使用此值指定 SetValue 方法应在存储名称/值对时确定适当的注册表数据类型。

例:regKey.SetValue("", value, RegistryValueKind.Binary);

实例1:
C# 修改注册表恢复禁用的注册表、任务管理器和隐藏的文件。

现在的病毒几乎都有禁用注册表、任务管理器、隐藏文件等功能,现在让我简单介绍下C#中是如何实现解除这些限制的。其实很简单,有兴趣的网友可以往下看:
打开VS 2008,建立一个C#的控制台应用程序,代码如下:

using System;
using Microsoft.Win32;

class Changreg
{
    public static void Main()
    {
        Console.Title = "修复系统禁用项目";
        try
        {
            RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",true);
            rkey.SetValue("DisableTaskmgr","0",RegistryValueKind.DWord);//解开禁用的任务管理器
            Console.WriteLine("解开禁用的任务管理器");
            rkey.SetValue("DisableRegistryTools","0",RegistryValueKind.DWord);//解开禁用的注册表
            Console.WriteLine("解开禁用的注册表");
            RegistryKey rkey1 = Registry.LocalMachine.OpenSubKey(@"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL",true);
            rkey1.SetValue("CheckedValue", "1", RegistryValueKind.DWord); //显示隐藏文件
            Console.WriteLine("显示隐藏文件");
        }
        catch (System.Exception e)
        {
          Console.WriteLine(e.ToString());
        }
          Console.WriteLine("修复完成!请按任意键退出.");
          Console.ReadKey();
    }
}

分享到:
评论

相关推荐

    C#操作注册表信息

    在IT领域,C#是一种...在这个压缩包文件`ConsoleClient`中,可能包含了一个使用上述方法实现的控制台应用程序示例,通过运行这个程序,你可以更直观地了解C#操作注册表的实际过程。建议结合源代码学习,以加深理解。

    c#操作注册表

    #### 三、使用C#操作注册表 .NET Framework在`Microsoft.Win32`命名空间中提供了两种类来操作注册表:`Registry`和`RegistryKey`。这两种类都是密封类,不能被继承。 1. **Registry类** `Registry`类提供了一...

    C#操作注册表代码C#操作注册表代码

    在深入了解C#操作注册表之前,我们先简要回顾一下注册表的基本结构。注册表由多个键(Key)组成,这些键又可以拥有子键(SubKey),每个键下还可以存储一个或多个值(Value)。注册表的主要组成部分包括: - **根键...

    c#操作注册表(新人们请看,高手们指教)

    ### 二、C#操作注册表 #### 1. 读取注册表 在C#中读取注册表的基本步骤如下: ```csharp using Microsoft.Win32; private string GetRegistData(string name) { string registData; RegistryKey hkml = ...

    C#操作注册表类

    利用C#操作Windows操作系统注册表基类 来源:红黑联盟

    C#注册表\C#操作注册表.doc

    标题和描述均提到了"C#操作注册表"的主题,这涉及到使用C#编程语言来读取、写入和管理Windows操作系统中的注册表设置。注册表是Windows系统中用于存储配置设置和选项的一个核心数据库,包括应用程序设置、硬件配置...

    C#操作注册表实现软件注册

    下面将详细介绍如何使用C#操作注册表来实现软件注册。 首先,我们需要理解注册表在软件注册中的作用。注册表是Windows系统存储配置信息的地方,包括用户设置、应用程序信息等。软件开发者可以利用注册表来存储用户...

    C#操作注册表源码--适合初学者参考

    对于初学者来说,理解和掌握如何使用C#操作注册表是提升技能的重要步骤。 首先,我们需要了解C#中用于访问注册表的类:`Microsoft.Win32.Registry`和`Microsoft.Win32.RegistryKey`。`Registry`类提供了一系列静态...

    C# 操作注册表 操作注册表

    以上就是使用C#操作注册表的基本方法。需要注意的是,在进行注册表操作时一定要小心谨慎,因为不当的操作可能会导致系统不稳定或者崩溃。因此,在开发过程中最好进行充分的测试,并且在实际部署时确保有足够的错误...

    [PDF电子书]利用C#操作注册表

    【标题】:“利用C#操作注册表” 【描述】中提到的内容主要涉及如何使用C#编程语言对Windows操作系统中的注册表进行操作,包括创建、打开和删除注册表项,以及创建、修改、读取和删除键值。同时,强调了在进行这些...

    c# 操作注册表+用WMI读取硬件信息+操作EXCEL实例

    首先,让我们了解如何使用C#操作注册表。注册表是Windows操作系统中存储系统和应用程序配置信息的地方。在C#中,我们可以借助`Microsoft.Win32`命名空间下的`Registry`类来访问和修改注册表。例如,以下代码展示了...

    C#操作注册表键值实现隐藏或显示桌面上的图标

    总的来说,通过C#操作注册表可以实现许多系统级别的自定义,包括隐藏或显示桌面上的图标。然而,这需要对注册表结构、C#编程以及可能涉及的安全和权限问题有深入的理解。希望这个解析能为你提供宝贵的参考,让你在IT...

    C#操作注册表讲解 .NET下托管语言C#操作注册表

    作为编程开发人员,我们有必要了解注册表...下面我们就来用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除、键值的创建(设置值、修改),读取和删除、判断注册表项是否存在、判断键值是否存在。

    C#注册表操作类(完整版))

    在本段内容中,主要介绍了C#中注册表操作类的基础知识,包括注册表基项的定义和注册表数据类型的分类。这些知识点是进行C#编程时,尤其是进行系统配置和管理时的重要组成部分。 注册表是Windows操作系统中的一个...

    C#操作注册表,对字符串加密等的类

    本文将详细解析标题中的两个主要知识点:C#操作注册表和字符串加密。 首先,让我们来探讨如何在C#中操作注册表。在Windows操作系统中,注册表是存储系统和应用程序设置的关键数据库。在C#中,我们可以使用`...

    C#操作注册表相关说明.doc

    ### C#操作注册表知识点详解 #### 一、引言 在Windows平台上,注册表扮演着极其重要的角色,它不仅管理着系统的核心配置信息,还记录了许多应用程序的配置细节。因此,掌握如何使用C#来操作注册表对于开发基于...

    c# 操作注册表

    在编程领域,C#是一种广泛使用的面向对象的编程语言,由微软公司开发并推广,尤其在Windows平台上,...通过以上介绍,你应该对C#操作注册表有了基本的理解,可以在实践中灵活运用这些方法进行读、写、删除和创建操作。

    c#操作注册表类

    总结来说,`Register.cs`文件提供了一个C#操作注册表的类,这个类封装了常见的读写、创建、删除等操作,使得开发者能够方便地管理和维护注册表数据,而无需直接与底层的`Registry`类交互。使用这样的类,可以提高...

    C#操作注册表登陆界面

    总结,C#操作注册表登陆界面的关键在于合理利用`RegistryKey`类来读写注册表,以及选择合适的加密算法来保护用户的敏感信息。在设计登录系统时,必须充分考虑安全性、稳定性和用户体验,确保程序的可靠性和可维护性...

Global site tag (gtag.js) - Google Analytics