http://blog.naver.com/tear230/100002814790
using System;
using Microsoft.Win32;
// Microsoft.Win32 네임스페이스에서는 운영 체제에서 발생시킨 이벤트를
// 처리하는 클래스와 시스템 레지스트리를 관리하는 클래스의 두 가지 유형을 제공합니다.
class Reg {
public static void Main() {
// Registry 클래스 : 레지스트리의 값과 하위 키에 액세스하는 기본 Registrykeys를 제공.
// RegistryKey : Windows레지스트리의 키수준노드. 이클래스는 레지스트리 캡슐화 클래스.
RegistryKey rk = Registry.CurrentUser;
// HKEY_CURRENT_USER에 액세스 할 RegistryKey의 객체생성
PrintKeys(rk); // 해당 레지스트리키의 하위 키 목록을 뿌져주는 메소드
/*
Registry.ClassesRoot
- 해당 형식과 관련된 속성 및 문서의 형식 또는 클래스를 정의합니다.
- Windows 레지스트리 기본 키 HKEY_CLASSES_ROOT
Registry.CurrentConfig
- 사용자와 관련되지 않은 하드웨어에 대한 구성 정보가 들어 있습니다.
- Windows 레지스트리 기본 키 HKEY_CURRENT_CONFIG
Registry.CurrentUser
- 현재 사용자 기본 설정에 대한 정보가 들어 있습니다.
- Windows 레지스트리 기본 키 HKEY_CURRENT_USER
Registry.DynData
- 동적 레지스트리 데이터가 들어 있습니다.
- Windows 레지스트리 기본 키 HKEY_DYN_DATA
Registry.LocalMachine
- 로컬 컴퓨터에 대한 구성 데이터가 들어 있습니다.
- Windows 레지스트리 기본 키 HKEY_LOCAL_MACHINE
Registry.PerformanceData
- 소프트웨어 구성 요소에 대한 성능 정보가 들어 있습니다.
- Windows 레지스트리 기본 키 HKEY_PERFORMANCE_DATA
Registry.Users
- 기본 사용자 구성에 대한 정보가 들어 있습니다.
- Windows 레지스트리 기본 키 HKEY_USERS
*/
IESetup(); //익스플로러의 페이지 설정을 수정한다.
Console.Read(); //실행화면 일시중지
}
static void IESetup()
{
Console.WriteLine("\n * 아래는 익스플로러 메뉴의 페이지 설정부분을 변경합니다.");
string strKey = @"Software\Microsoft\Internet Explorer\PageSetup";
// 익스플로러의 메뉴 -> 페이지 설정부분을 수정하기 위한 위치값 변수
// 수정하고자하는 레지스트리 내용의 검색 및 확인 : 시작 -> 실행 - > regedit
// 지정된 쓰기 권한을 사용하여 지정된 하위 키를 검색합니다
RegistryKey oKey = Registry.CurrentUser.OpenSubKey(strKey,true);
// public RegistryKey OpenSubKey(string name, bool writable); 지정된 하위 키를 검색
// name : 열려는 하위 키의 이름 또는 경로
// writable : 키에 대한 쓰기 권한이 필요하면 true로 설정
// public RegistryKey OpenSubKey(string); 하위 키를 읽기 전용으로 검색
Console.WriteLine("-----------------변경전----------------------");
Console.WriteLine("footer : {0} ", oKey.GetValue("footer"));
Console.WriteLine("header : {0} ", oKey.GetValue("header"));
Console.WriteLine("margin_bottom : {0} ", oKey.GetValue("margin_bottom"));
Console.WriteLine("margin_left : {0} ", oKey.GetValue("margin_left"));
Console.WriteLine("margin_right : {0} ", oKey.GetValue("margin_right"));
Console.WriteLine("margin_top : {0} ", oKey.GetValue("margin_top"));
oKey.SetValue("footer", "&p/&P");
oKey.SetValue("header", "&w");
oKey.SetValue("margin_bottom", "0");
oKey.SetValue("margin_left", "0");
oKey.SetValue("margin_right", "0");
oKey.SetValue("margin_top", "0");
// public void SetValue(string name, object value); 지정된 값을 설정합니다.
/*
* 익스플로러 페이지설정에서 머리글, 바닥글 값 설정시 사용하는 값종류
- &w : 창 제목
- &u : 페이지 주소(URL)
- &d : 제어판의 국가별 설정에서 지정한 간단한 형식의 날짜
- &D : 제어판의 국가별 설정에서 지정한 자세한 형식의 날짜
- &t : 제어판의 국가별 설정에서 지정한 서식으로 표시한 시간
- &T : 24시간제 서식으로 표시한 시간
- &p : 현재 페이지 번호
- &P : 전체 페이지 수
- &b : 오른쪽 맞춤 텍스트(앞에 &b)
- &b&b : 가운데 맞춤 텍스트(&b&b 사이)
- && : 단일 앰퍼샌드(&)
* 익스플로러 시작페이지 변경시 사용하는 레지스트리키
-> HKEY_CURRENT_USER/Software/Microsoft/Internet Explore/Main의 Start Page
*/
Console.WriteLine("-----------------변경후----------------------");
Console.WriteLine("footer : {0} ", oKey.GetValue("footer"));
Console.WriteLine("header : {0} ", oKey.GetValue("header"));
Console.WriteLine("margin_bottom : {0} ", oKey.GetValue("margin_bottom"));
Console.WriteLine("margin_left : {0} ", oKey.GetValue("margin_left"));
Console.WriteLine("margin_right : {0} ", oKey.GetValue("margin_right"));
Console.WriteLine("margin_top : {0} ", oKey.GetValue("margin_top"));
// String s = (String) oKey.GetValue("footer");
// public object GetValue(string name); 지정된 값을 검색
/*
footer : 바닥글
header : 머리글
margin_bottom : 아래쪽 여백
margin_left : 왼쪽 여백
margin_right : 오른쪽 여백
margin_top : 위쪽여백
*/
oKey.Close();
// 컨텐트를 수정후 키를 닫고 디스크에 플러시
// 시스템키는 닫을수 없으므로 시스템키에서 이메서드를 호출하면 아무것도 수행되지 않음.
// 이미 닫힌 RegistryKey의 인스턴스에서 이메서드를 호출하면 아무것도 수행되지 않음.
}
static void PrintKeys(RegistryKey rkey) {
String [] names = rkey.GetSubKeyNames();
// GetSubKeyNames : 모든 하위 키 이름이 포함된 문자열의 배열 검색.
int icount = 0;
Console.WriteLine( rkey.Name + "의 서브키 목록" );
// Name : 키 이름을 검색.
// SubKeyCount : 현재 키에 대한 기본 수준의 하위 키 개수.
// ValueCount : 키의 값 개수
Console.WriteLine("-----------------------------------------------");
foreach (String s in names) {
Console.WriteLine(s);
icount++;
if (icount >= 10)
break;
}
Console.WriteLine("-----------------------------------------------");
}
}
'IT-개발,DB' 카테고리의 다른 글
[개발] Timer 클래스 (System.Windows.Forms.Timer) (0) | 2010.11.05 |
---|---|
[개발] 키보드상태 얻기(Ins ' Num Lock' Caps Lock) (0) | 2010.11.05 |
[개발] Environment Class : 현재환경 및 플랫폼 정보 및 조작 (0) | 2010.11.05 |
[개발] Visual C# .NET에서 프로그래밍 방식으로 전자 메일 보내기 (0) | 2010.11.05 |
[개발] crontab 사용하여 mysql 자동 백업 파일 생성 (0) | 2010.11.05 |
댓글