C#對註冊表的操作

來源:互聯網
上載者:User

標籤:分支   包含   方便   http   存在   pre   gis   using   path   

一、引入命名空間:

using Microsoft.Win32;

 

二、建立登錄機碼:CreateSubKey(name)方法

添加SubKey時候首先要開啟一個表項,並設定參數為true,才能成功建立子項

//給要建立的註冊表設定一個變數,使用更方便
private string RegistFileName = "test";
/// <summary>/// 建立一個test登錄機碼,下麵包含OpenLog,和SaveLog兩個子項/// </summary>private void CreateRegistFile(){
  //SOFTWARE在LocalMachine分支下
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE",true); RegistryKey software = key.CreateSubKey(RegistFileName); RegistryKey test = key.OpenSubKey(RegistFileName,true); RegistryKey Savekey = test.CreateSubKey("SaveLog");}

 

三、刪除登錄機碼:DeleteSubKey(name,true)方法

RegistryKey key = Registry.LocalMachine;RegistryKey software = key.OpenSubKey("SOFTWARE", true);RegistryKey test = software.OpenSubKey(RegistFileName, true);test.DeleteSubKey("SaveLog",true); 

 

四、添加索引值:SetValue(name,value)方法

/// <summary>/// 將path寫入OPenLog子項/// </summary>private void writeToRegistFile(string path){
  RegistryKey key = Registry.LocalMachine;
  RegistryKey software = key.OpenSubKey("SOFTWARE", true);
  RegistryKey test = software.OpenSubKey(RegistFileName, true);
  RegistryKey OpenPath = test.OpenSubKey("OpenLog",true);
  //"name"是該索引值的name,相當於一個別名,可自行設定
  OpenPath.SetValue("name", path);}

 

五、刪除索引值:DeleteValue(name)方法

RegistryKey key = Registry.LocalMachine;RegistryKey software = key.OpenSubKey("SOFTWARE", true);RegistryKey test = software.OpenSubKey(RegistFileName, true);
RegistryKey OpenPath = test.OpenSubKey("SaveLog",true);
//刪除SaveLog子項下的名為SaveLog的子鍵
OpenPath.DeleteValue("name");

 

六、判斷登錄機碼是否存在:

/// <summary>/// 判斷登錄機碼是否存在/// </summary>/// <returns>bool</returns>private bool IsRegeditItemExist(){  string[] subkeyNames;  RegistryKey key = Registry.LocalMachine;  RegistryKey software = key.OpenSubKey("SOFTWARE");  subkeyNames = software.GetSubKeyNames();  //在這裡我是判斷test表項是否存在  foreach (string keyName in subkeyNames)  {    if (keyName == RegistFileName)    {      key.Close();      return true;    }  }  key.Close();  return false;}

 

七、判斷索引值是否存在:

/// <summary>/// 判斷該路徑是否已經存在/// </summary>/// <param name="path">路徑</param>/// <returns></returns>private bool IsRegeditKeyExit(string name){string[] saveSubkeyNames;    RegistryKey key = Registry.LocalMachine;    RegistryKey software = key.OpenSubKey("SOFTWARE", true);    RegistryKey test = software.OpenSubKey(RegistFileName, true);    RegistryKey Savekey = test.OpenSubKey("SaveLog", true);
  //擷取該子項下的所有索引值的名稱saveSubkeyNames saveSubkeyNames = Savekey.GetSubKeyNames();foreach(string keyName in openSubkeyNames) { if(keyName == name) { key.Close(); return false; } } key.Close(); return true;}

C#對註冊表的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.