어떻게 C\#에서 등록 표를 사용 합 니까
레 지 스 트 는 Microsoft Windows 운영 체제 와 응용 프로그램의 중요 한 차원 형 데이터 베이스 로 시스템 과 응용 프로그램의 설정 정 보 를 저장 하 는 데 사용 된다.키(key,또는"항목"),하위 키(subkey,하위 항목)와 값 항목(value)으로 구성 되 어 있 습 니 다.하나의 키 는 트 리 데이터 구조의 한 노드 이 고 서브 키 는 이 노드 의 서브 노드 이 며 서브 키 도 키 이다.하나의 값 항목 은 키 의 속성 으로 이름(name),데이터 형식(datatype),데이터(data)로 구성 되 어 있 습 니 다.하나의 키 는 하나 이상 의 값 을 가 질 수 있 습 니 다.값 의 이름 이 각각 다 릅 니 다.값 의 이름 이 비어 있 으 면 이 값 은 이 키 의 기본 값 입 니 다.
(1)등록 표 의 데이터 유형 은 주로 다음 과 같은 다섯 가지 가 있다.
(2)등록 표 는 다음 과 같은 5 개의 1 급 분기 가 있다.
(3)등록 표 의 저장 방식:
윈도 NT 시리즈 운영 체제 와 윈도 9x 시리즈 의 저장 방식 은 큰 차이 가 있다.레 지 스 트 리 하 이브 스 라 고 불 리 는 레 지 스 트 리 는 여러 파일 로 나 뉘 어 저 장 됩 니 다.모든 파일 을 하나의 설정 단위 라 고 합 니 다.초기 윈도 3.x 시리즈 에서 레 지 스 트 는 하나의 reg.dat 파일 만 포함 하고 저 장 된 내용 은 나중에 HKEY 로 변 했다.CLASSES_ROOT 분기.
윈도 NT 가족의 설정 단위 파일:
Windows 9x 가족의 설정 단위 파일:
2.C\#레 지 스 트 리 지 조작
우 리 는 외부 로 windows 운영 체 제 를 불 러 올 수 있다. Advapi 32.dll 파일,레 지 스 트 리 지 작업 을 수행 합 니 다.다음 인 스 턴 스 에서 저 희 는.NET 플랫폼 을 사용 하여 자체 적 으로 가지 고 있 습 니 다. Microsoft.Win 32.Registry 라 이브 러 리 를 사용 할 때 다음 과 같은 인용 을 추가 합 니 다.
using Microsoft.Win32;
구체 적 인 조작 은 다음 과 같다.
public static class RegistryUtil
{
#region
/// <summary>
///
/// </summary>
/// <param name="keyPath"></param>
/// <param name="parentKey"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryKey(string keyPath, RegistryKey parentKey)
{
return parentKey?.CreateSubKey(keyPath);
}
/// <summary>
/// <see cref="Registry.LocalMachine">
/// </summary>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryLocalMachine64Key(string keyPath)
{
return Registry.LocalMachine.CreateSubKey(keyPath);
}
/// <summary>
/// <see cref="Registry.ClassesRoot">
/// </summary>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryClassesRootKey(string keyPath)
{
return Registry.ClassesRoot.CreateSubKey(keyPath);
}
/// <summary>
/// <see cref="Registry.CurrentConfig">
/// </summary>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryCurrentConfigKey(string keyPath)
{
return Registry.CurrentConfig.CreateSubKey(keyPath);
}
/// <summary>
/// <see cref="Registry.CurrentUser">
/// </summary>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryCurrentUserKey(string keyPath)
{
return Registry.CurrentUser.CreateSubKey(keyPath);
}
/// <summary>
/// <see cref="Registry.PerformanceData">
/// </summary>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryPerformanceDataKey(string keyPath)
{
return Registry.PerformanceData.CreateSubKey(keyPath);
}
/// <summary>
/// <see cref="Registry.Users">
/// </summary>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey CreateRegistryUsersKey(string keyPath)
{
return Registry.Users.CreateSubKey(keyPath);
}
#endregion
#region
/// <summary>
/// <see cref="RegistryView.Registry64"/> <see cref="RegistryHive.LocalMachine"/>
/// </summary>
/// <returns></returns>
public static RegistryKey OpenLocalMachine64Key()
{
return RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
}
/// <summary>
/// <see cref="RegistryView.Registry32"/> <see cref="RegistryHive.LocalMachine"/>
/// </summary>
/// <returns></returns>
public static RegistryKey OpenLocalMachine32Key()
{
return RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
}
/// <summary>
/// <see cref="RegistryView.Registry64"/> <see cref="RegistryHive.CurrentUser"/>
/// </summary>
/// <returns></returns>
public static RegistryKey OpenCurrentUser64Key()
{
return RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry64);
}
/// <summary>
/// <see cref="RegistryView.Registry32"/> <see cref="RegistryHive.LocalMachine"/>
/// </summary>
/// <returns></returns>
public static RegistryKey OpenCurrentUser32Key()
{
return RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry32);
}
/// <summary>
///
/// </summary>
/// <param name="rootKey"></param>
/// <param name="keyPath"></param>
/// <returns></returns>
public static RegistryKey OpenKey(this RegistryKey rootKey, string keyPath)
{
return rootKey.OpenSubKey(keyPath, true);
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <param name="name"></param>
/// <returns></returns>
public static string ReadRegistryValue(this RegistryKey key, string name)
{
return key?.GetValue(name)?.ToString();
}
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <param name="name"></param>
/// <param name="value"></param>
public static void WriteRegistryValue(this RegistryKey key, string name, string value)
{
key.SetValue(name, value);
}
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <param name="name"></param>
public static void DeleteRegistryValue(this RegistryKey key, string name)
{
key.DeleteValue(name);
}
}
디버그 코드 는 다음 과 같 습 니 다:
static void Main(string[] args)
{
//
string path = @"Software\Test\Char";
var key = RegistryUtil.CreateRegistryLocalMachine64Key(path);
key.WriteRegistryValue("Name", "Dwayne");
key.WriteRegistryValue("Age", "18");
//
var regKey = RegistryUtil.OpenLocalMachine64Key().OpenKey(path);
var name = regKey.ReadRegistryValue("Name");
var age = regKey.ReadRegistryValue("Age");
Console.WriteLine($"Name={name},Age={age}");
Console.WriteLine("Hello World!");
}
이상 은 C\#에서 레 지 스 트 를 어떻게 사용 하 는 지 에 대한 상세 한 내용 입 니 다.c\#레 지 스 트 를 사용 하 는 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.