zoukankan      html  css  js  c++  java
  • How to handle registry via C#

    How to handle registry key to achiecve our purpose via C# is very important especially for our testing. We often need to alter some registry key to change windows settings or read some window settings. Inorder handle registry we need using namespace Microsoft.Win32. Two main class provided are Registry and RegistryKey, Registry is main responsible for get static objects, and RegistryKey is provided methods to create and read registry. The main static methods in Registry:

    • ClassRoot : Provide access the root "HKEY_CLASSES_ROOT
    • CurrentConfig: Provide access the roor "HKEY_CURRENT_CONFIG"
    • CurrentUser: Provide access the root"HKEY_CURRENT_USER"
    • LocalMachine: Provide accee the root "HKEY_LOCAL_MACHINE"
    • USers: Provide access the root "HKEY_USER"
    • PerformanceData: Provide access the root "HKEY_PERFORMANCE_DATA"

    RegistryKey class is more important to handle registry, the main operations we used are use this class.

    Property: Name, SubKeyCount and ValueCount.

    Method: OpenSubKey, CreateSubKey, DeleteSubKey, Close, GetSubKeyName, GetValue, SetValue and DeleteValue. 

    Static Methods Example: 

    Open Registry(If need edit registry, set parameter set value as true)

      Registry.CurrentUser.OpenSubKey(@"SoftwareMicrosoftSomeKey"); Only read

      Registry.CurrentUser.OpenSubKey(@"SoftwareMicrosoftSomeKey",  true); Read and Write 

      Registry.CurrentUSer.DeleteSubKey(@"SoftwareMicrosoftSomeKey");


    Object Methods Example:

    Get Subkey and Edit

      RegistryKey rk = RegistryKey.CurrentUser.OpenSubKey(@"SoftWareMicrosoft", true);

      rk.SetValue("Name", "Eric");

      rk.SetValue("Version", "1.0.0");

      string name = rk.GetValue("Name"); 

      rk.DeleteValue("Version");  //Delete registryKey "Version"

     Note: 

    1.If you need to handle registry both in x86 and amd64 OS, you need attention to get above methods. Becasue different type of OS ,the registry path is different. You need reposition them like below under amd64 machine:
      Registry localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64) 

    2. All operations about registry, we should got admin privilige first in case of some exception or errors. And we should more careful when we handle registry especially delete some keys.

  • 相关阅读:
    UE4使用第三方库读写xml文件
    ROS机器人程序设计(原书第2版)补充资料 教学大纲
    Unity UGUI图文混排(七) -- 下划线
    奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示
    Java复习之泛型
    Java复习之多线程
    Java复习之包及访问控制权限
    Java复习之异常
    Java复习之面向对象高级
    Java复习之面向对象基础
  • 原文地址:https://www.cnblogs.com/Blackeye286/p/3580409.html
Copyright © 2011-2022 走看看