연습: 레지스트리 키 만들기 및 값 변경(Visual Basic)

이 연습에서는 사용자가 키를 만들고 삭제할 수 있도록 컴퓨터의 레지스트리 키를 찾는 응용 프로그램을 만드는 방법과, 값을 읽고 가져오고 설정하고 삭제하는 방법을 보여 줍니다.

기본 폼을 만들려면

  1. 파일 메뉴에서 새 프로젝트를 선택하고 Windows 응용 프로그램을 클릭합니다.

  2. 이름이 Value인 TextBox를 폼에 추가합니다. 오른쪽 아래의 속성 창에 있는 (이름) 필드에 Value를 입력합니다.

  3. 폼에 History라는 ListBox를 추가합니다. 오른쪽 아래의 속성 창에 있는 (이름) 필드에 History를 입력합니다.

  4. 추가 변수를 만들어 클래스 선언 바로 뒤에 추가합니다.

    Dim tempKey As Microsoft.Win32.RegistryKey
    

ComboBox에서 레지스트리 키를 찾으려면

  1. 레지스트리 하이브를 선택할 수 있도록 레지스트리 하이브를 표시하는 selectHive라는 ComboBox를 폼에 추가합니다. 폼의 로드 이벤트에 다음 코드를 추가하여 채웁니다.

    selectHive.Items.Add("ClassesRoot")
    selectHive.Items.Add("CurentConfig")
    selectHive.Items.Add("CurrentUser")
    selectHive.Items.Add("LocalMachine")
    selectHive.Items.Add("PerformanceData")
    selectHive.Items.Add("Users")
    
  2. 클래스 선언 뒤에 다음 코드를 추가합니다.

    Dim registryObject As Microsoft.Win32.RegistryKey = Nothing
    
  3. 다음 코드를 selectHive SelectedIndexChanged 이벤트에 추가합니다.

    Select Case selectHive.Text
      Case "ClassesRoot"
        registryObject = My.Computer.Registry.ClassesRoot
      Case "CurrentConfig"
        registryObject = My.Computer.Registry.CurrentConfig
      Case "CurrentUser"
        registryObject = My.Computer.Registry.CurrentUser
      Case "LocalMachine"
        registryObject = My.Computer.Registry.LocalMachine
      Case "PerformanceData"
        registryObject = My.Computer.Registry.PerformanceData
      Case "Users"
        registryObject = My.Computer.Registry.Users
    End Select
    

레지스트리 키의 값을 읽으려면

  1. "Read Value" 텍스트가 있는 이름이 ReadValueButton인 Button을 폼에 추가합니다.

  2. "Enter Subkey" 텍스트가 있는 이름이 showSubKey인 TextBox를 폼에 추가합니다.

  3. ReadValueButton Click 이벤트에 다음 코드를 추가합니다.

    tempKey = registryObject
    If tempKey Is Nothing Then
      MsgBox("Please select a registry hive.")
      Return
    End If
    Value.Text = CStr(tempKey.GetValue(ShowSubKey.Text))
    History.Items.Add("Read Value " & selectHive.Text & 
                      "\" & ShowSubKey.Text)
    
  4. 기존 하위 키 이름을 showSubKey 텍스트 상자에 입력하여 응용 프로그램을 테스트합니다. ReadValueButton을 클릭하면 Value 텍스트 상자에 값이 표시됩니다.

레지스트리 키에 값을 설정하려면

  1. "Set Value" 텍스트가 있는 이름이 SetValueButton인 단추를 폼에 추가합니다.

  2. Click 이벤트에 다음 코드를 추가합니다.

    tempKey = registryObject
    If tempKey Is Nothing Then
      MsgBox("Please select a registry hive.")
      Return
    End If
    If Value.Text Is Nothing Then
      MsgBox("Please enter a value.")
      Return
    End If
    tempKey.SetValue(showSubKey.Text, Value.Text)
    tempKey.Close()
    History.Items.Add("Set Value " & selectHive.Text & 
                      "\" & showSubKey.Text)
    
  3. Value 텍스트 상자에 새 하위 키 값을 입력한 다음 ReadValueButton 단추로 값이 변경되었는지 확인하여 응용 프로그램을 테스트합니다.

레지스트리 키를 만들려면

  1. "Create Key" 텍스트가 있는 이름이 CreateButton인 단추를 폼에 추가합니다.

  2. 다음 코드를 Click 이벤트에 추가합니다.

    registryObject.CreateSubKey(showSubKey.Text)
    History.Items.Add("Create Key " & selectHive.Text & 
                      "\" & showSubKey.Text)
    
  3. showSubKey 텍스트 상자에 새 키 이름을 입력하고 레지스트리 편집기로 키가 만들어졌는지 확인하여 응용 프로그램을 테스트합니다.

레지스트리 키를 삭제하려면

  1. "Delete Key" 텍스트가 있는 이름이 DeleteButton인 단추를 폼에 추가합니다.

  2. 다음 코드를 Click 이벤트에 추가합니다.

    tempKey = registryObject
    If tempKey Is Nothing Then
      MsgBox("Please select a registry hive.")
      Return
    End If
    If showSubKey.Text Is Nothing Then
      MsgBox("Please enter a subkey.")
      Return
    End If
    registryObject.DeleteSubKey(showSubKey.Text)
    History.Items.Add("Delete Key " & selectHive.Text & 
                      "\" & showSubKey.Text)
    
  3. 하위 키를 삭제하고 레지스트리 편집기로 키가 삭제되었는지 확인하여 코드를 테스트합니다.

참고 항목

작업

문제 해결: 레지스트리 조작(Visual Basic)

개념

일반적인 레지스트리 작업(Visual Basic)

보안 및 레지스트리(Visual Basic)

My를 사용하여 레지스트리 읽기 및 쓰기(Visual Basic)

Microsoft.Win32 네임스페이스를 사용하여 레지스트리 읽기 및 쓰기(Visual Basic)