国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用.NET來操作Windows注冊表

2019-11-18 12:06:21
字體:
來源:轉載
供稿:網友

  雖然微軟已經推出Windows家族的Active Directory的很多優點,但注冊表依舊是Windows機器的活力源泉。注冊表用于存儲軟件安裝數據,正如存儲文件相關信息和特定用戶信息一樣。過去,對注冊表的操作往往與使用Windows API有關。對于當前的多數情況,.NET框架能夠通過提供更加輕易的注冊表訪問而簡化了注冊表的操作過程。
  
  注冊表
  注冊表作為一臺計算機程序和Windows信息的倉庫中心,其結構組織為分等級形式,而這一分等級形式是以一個具有存儲信息的單元的邏輯順序為基礎。
  
  當在注冊表中存儲信息時,根據要存儲的信息類型選擇合適的位置。Windows包含一個名為注冊表編輯器Registry Editor (regedit.exe)的工具,你可以使用這一工具來查看或者操作注冊表數據。當瀏覽注冊表時,你將注重到鍵的等級種類以及它們的值。(一句警告的話:在編輯注冊表數據的時候一定格外小心,因為你會有可能影響到操作系統或者程序。在保存任何注冊表編輯更改之前,請確保做一個校驗的備份。)
  
  一個注冊表具有以下最高等級的鍵值:
  
  KKEY_CLASSES_ROOT:這一鍵包括文件擴展相關信息和COM類注冊信息,比如PRogIDs, CLSIDs, 以及IIDs。其主要目的是使系統兼容于16位Windows的注冊表。
  HKEY_CURRENT_USER:這一鍵包含與HKEY_USERS中的安全特性標識符列舉的信息類似。HKEY_CURRENT_USER的任何改變都立即引起HKEY_USERS的改變,反之亦然。
  HKEY_LOCAL_MACHINE:這一鍵存儲計算機的系統信息,并包含從軟件設置到網絡及硬件配置的所有信息。這些配置與用戶無關,因為這些設置必須適用于使用機器的所有用戶。
  HKEY_USERS:這一鍵保存使用操作系統和程序的所有用戶。
  HKEY_CURRENT_CONFIG:這一鍵針對于存儲在HKEY_LOCAL_MACHINE/Config/000x鍵的設置集合中的當前計算機配置,而HKEY_LOCAL_MACHINE/Config/000x鍵包含著當前硬件配置信息(x表示配置數目)。
  
  這些都是微軟操作系統中的基本的鍵。你可以使用你最喜愛的.NET語言來操作注冊表。
  
  Windows.Win32名稱空間
  .NET Windows.Win32名稱空間提供了操作一個Windows注冊表的所有信息,以下是它用于操作注冊表的類:
  
  Registry:提供查找Windows機器中注冊表的一套標準根部鍵。
  RegistryKey:代表Windows注冊表的一個鍵等級節點。
  
  注冊表類提供了能夠對不同鍵的訪問:
  
  CurrentUser: 操作HKEY_CURRENT_USER鍵
  LocalMachine: 操作HKEY_LOCAL_MACHINE鍵
  ClassesRoot: 操作HKEY_CLASSES_ROOT鍵
  Users: 操作HKEY_USERS鍵
  CurrentConfig: 操作HKEY_CURRENT_CONFIG鍵
  PerformanceData:提供軟件組件的性能信息
  DynData: 處理動態數據
  例如,你可以使用以下代碼來訪問HKEY_CURRENT_USER鍵:
   使用.NET來操作Windows注冊表(圖一)
  首先,代碼通過注冊表類將一個RegistryKey對象初始化LocalMachine鍵。接著,調用DisplayKeys函數,它顯示所有的子鍵和相關的值,并使用遞歸方式來調用每一子鍵,通過標準輸出方式來顯示結果。以下是使用VB.NET的相同代碼:
   使用.NET來操作Windows注冊表(圖二)
  
  保存鍵的值
  除了可以讀取由其它程序建立的數據,注冊表也可以作為信息保存的倉庫。CreateSubKey鍵和RegistryKey類的SetValue方法可以完成這一過程。以下的VB.NET代碼在HKEY_CURRENT_USER的Software子鍵中建立一個子鍵,并賦予一個值:
   使用.NET來操作Windows注冊表(圖三)
  這里是C#中相同的程序段:
   使用.NET來操作Windows注冊表(圖四)
  你可以很輕易地讀取這些被保存的值:
  使用.NET來操作Windows注冊表(圖五)
  這些鍵值以純文本格式被保存,所以使用這一機器的任何人都可以很輕易地訪問到這些數據。基于此,一些敏感數據不應該保存在注冊表中,或者在保存之前應該先加密。當加密的時候,鍵值也應該被保存以致數據在必要時可以很輕易地被加密。這一方法經常用于安全地保存數據庫連接字符串。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽宁省| 枣庄市| 凉城县| 长白| 平度市| 亳州市| 石台县| 定日县| 化州市| 布尔津县| 绥宁县| 平泉县| 北安市| 花莲市| 阳曲县| 南投县| 富民县| 洛南县| 安龙县| 都昌县| 阿克陶县| 彭阳县| 莒南县| 木兰县| 涪陵区| 碌曲县| 嵊泗县| 芦山县| 天峨县| 昭觉县| 确山县| 龙岩市| 新郑市| 双流县| 海宁市| 晋宁县| 永寿县| 广平县| 万年县| 双牌县| 弥渡县|