연습: 레지스트리 키 만들기 및 값 변경(Visual Basic)
이 연습에서는 사용자가 키를 만들고 삭제할 수 있도록 컴퓨터의 레지스트리 키를 찾는 응용 프로그램을 만드는 방법과, 값을 읽고 가져오고 설정하고 삭제하는 방법을 보여 줍니다.
기본 폼을 만들려면
파일 메뉴에서 새 프로젝트를 선택하고 Windows 응용 프로그램을 클릭합니다.
이름이 Value인 TextBox를 폼에 추가합니다. 오른쪽 아래의 속성 창에 있는 (이름) 필드에 Value를 입력합니다.
폼에 History라는 ListBox를 추가합니다. 오른쪽 아래의 속성 창에 있는 (이름) 필드에 History를 입력합니다.
추가 변수를 만들어 클래스 선언 바로 뒤에 추가합니다.
Dim tempKey As Microsoft.Win32.RegistryKey
ComboBox에서 레지스트리 키를 찾으려면
레지스트리 하이브를 선택할 수 있도록 레지스트리 하이브를 표시하는 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")
클래스 선언 뒤에 다음 코드를 추가합니다.
Dim registryObject As Microsoft.Win32.RegistryKey = Nothing
다음 코드를 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
레지스트리 키의 값을 읽으려면
"Read Value" 텍스트가 있는 이름이 ReadValueButton인 Button을 폼에 추가합니다.
"Enter Subkey" 텍스트가 있는 이름이 showSubKey인 TextBox를 폼에 추가합니다.
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)
기존 하위 키 이름을 showSubKey 텍스트 상자에 입력하여 응용 프로그램을 테스트합니다. ReadValueButton을 클릭하면 Value 텍스트 상자에 값이 표시됩니다.
레지스트리 키에 값을 설정하려면
"Set Value" 텍스트가 있는 이름이 SetValueButton인 단추를 폼에 추가합니다.
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)
Value 텍스트 상자에 새 하위 키 값을 입력한 다음 ReadValueButton 단추로 값이 변경되었는지 확인하여 응용 프로그램을 테스트합니다.
레지스트리 키를 만들려면
"Create Key" 텍스트가 있는 이름이 CreateButton인 단추를 폼에 추가합니다.
다음 코드를 Click 이벤트에 추가합니다.
registryObject.CreateSubKey(showSubKey.Text) History.Items.Add("Create Key " & selectHive.Text & "\" & showSubKey.Text)
showSubKey 텍스트 상자에 새 키 이름을 입력하고 레지스트리 편집기로 키가 만들어졌는지 확인하여 응용 프로그램을 테스트합니다.
레지스트리 키를 삭제하려면
"Delete Key" 텍스트가 있는 이름이 DeleteButton인 단추를 폼에 추가합니다.
다음 코드를 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)
하위 키를 삭제하고 레지스트리 편집기로 키가 삭제되었는지 확인하여 코드를 테스트합니다.