Share via


방법: Visual Basic에서 레지스트리 키 만들기 및 값 설정

My.Computer.Registry 개체의 CreateSubKey 메서드를 사용하여 레지스트리 키를 만들 수 있습니다.

절차

레지스트리 키를 만들려면

  • 키를 배치할 하이브와 키 이름을 지정하여 CreateSubKey 메서드를 사용합니다. Subkey 매개 변수는 대/소문자를 구분하지 않습니다. 이 예제에서는 HKEY_CURRENT_USER 아래에 레지스트리 키 MyTestKey를 만듭니다.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    

레지스트리 키를 만들고 키에 값을 설정하려면

  1. 키를 배치할 하이브와 키 이름을 지정하여 CreateSubkey 메서드를 사용합니다. 이 예제에서는 HKEY_CURRENT_USER 아래에 레지스트리 키 MyTestKey를 만듭니다.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. SetValue 메서드를 사용하여 값을 설정합니다. 이 예제에서는 문자열 값 "MyTestKeyValue"를 "This is a test value"로 설정합니다.

    My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
      "MyTestKeyValue", "This is a test value.")
    

예시

이 예제에서는 HKEY_CURRENT_USER 아래에 레지스트리 키 MyTestKey를 만든 다음 문자열 값 MyTestKeyValueThis is a test value로 설정합니다.

My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
  "MyTestKeyValue", "This is a test value.")

강력한 프로그래밍

레지스트리 구조를 검사하여 키에 적합한 위치를 찾습니다. 예를 들어 현재 사용자의 HKEY_CURRENT_USER\Software 키를 열고 회사 이름으로 키를 만들 수 있습니다. 그런 다음 회사 키에 레지스트리 값을 추가합니다.

웹 애플리케이션에서 레지스트리를 읽는 경우 현재 사용자는 웹 애플리케이션에 구현된 인증 및 가장에 따라 결정됩니다.

로컬 컴퓨터(LocalMachine)보다 사용자 폴더(CurrentUser)에 데이터를 쓰는 것이 더 안전합니다.

레지스트리 값을 만들 때 해당 값이 이미 있는 경우 수행할 작업을 결정해야 합니다. 다른 악성 프로세스에서 값을 이미 만들고 액세스했을 수도 있습니다. 레지스트리 값에 데이터를 넣으면 다른 프로세스에서 해당 데이터를 사용할 수 있습니다. 이를 방지하려면 GetValue 메서드를 사용합니다. 키가 아직 없는 경우 Nothing이 반환됩니다.

레지스트리 키가 ACL(액세스 제어 목록)로 보호된 경우에도 비밀(예: 암호)을 레지스트리에 일반 텍스트로 저장하는 것은 안전하지 않습니다.

다음 조건에서 예외가 발생합니다.

.NET Framework 보안

이 프로세스를 실행하려면 어셈블리에 RegistryPermission 클래스에서 부여한 권한 수준이 필요합니다. 부분 신뢰 컨텍스트에서 실행하는 경우 프로세스가 권한 부족으로 인해 예외를 throw할 수 있습니다. 마찬가지로, 사용자에게 설정을 만들거나 쓸 수 있는 올바른 ACL이 있어야 합니다. 예를 들어 코드 액세스 보안 권한이 있는 로컬 애플리케이션에는 운영 체제 권한이 없을 수 있습니다. 자세한 내용은 Code Access Security Basics을 참조하세요.

참고 항목

CAS(코드 액세스 보안)는 .NET Framework 및 .NET의 모든 버전에서 더 이상 사용되지 않습니다. 최신 버전의 .NET은 CAS 주석을 준수하지 않으며 CAS 관련 API를 사용하는 경우 오류가 발생합니다. 개발자는 보안 작업을 수행하는 대체 수단을 찾아야 합니다.

참고 항목