본문 바로가기
IT-개발,DB

[개발] 익스플로러의 프린터설정(머리글,바닥글,여백) 변경하기

by SB리치퍼슨 2010. 11. 5.

 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("-----------------------------------------------");
    }
}

반응형

댓글