2010/06/29 13:52 분류없음
.NET환경에서 사용자 컴퓨터 환경 알아오기
1. 사용 OS 알아오기
| System.Environment.OSVersion |
2. 사용자 이름 알아오기
| System.Windows.Form.SystemInformation.UserName |
*** 참고 ***
System Parameter와 관련된 정보를 가져 오기 위하여 Win32 API를 사용하는 경우가 많이 있습니다.
API를 사용한다고 해서 틀렸다 라고 할 수는 없지만, 일부 API가 특정 OS Version사용방법이 조금씩 차이가 있다는 점으로 미루어 볼 때,
.Net Framework 에서 제공하는 방법을 통해 가능하면 OS Version에 종속적이지 않는 방법으로 구현하는 것을 권장합니다.
(System Parameter 뿐만 아니라 기타 다른 API들 또한 .Net Framework에 포함되어 있습니다.)
지금부터 작성하는 내용은 .Net Framework 2.0 이상의 버전에 해당하는 내용이니 참고 하시기 바랍니다.
|
System.Environment | |
|
이름 |
설명 |
|
이 프로세스에 대한 명령줄을 가져옵니다. | |
|
현재 작업 디렉터리의 정규화된 경로를 가져오거나 설정합니다. | |
|
프로세스의 종료 코드를 가져오거나 설정합니다. | |
|
런타임의 종료 여부 또는 현재 응용 프로그램 도메인의 언로드 여부를 나타내는 값을 가져옵니다. | |
|
이 로컬 컴퓨터의 NetBIOS 이름을 가져옵니다. | |
|
이 환경에 대해 정의된 줄 바꿈 문자열을 가져옵니다. | |
|
현재 컴퓨터의 프로세서 수를 가져옵니다. | |
|
현재 스택 추적 정보를 가져옵니다. | |
|
시스템 디렉터리의 정규화된 경로를 가져옵니다. | |
|
시스템 시작 이후 경과 시간(밀리초)을 가져옵니다. | |
|
현재 사용자와 관련된 네트워크 도메인 이름을 가져옵니다. | |
|
현재 프로세스가 사용자 대화형 모드로 실행되고 있는지 여부를 나타내는 값을 가져옵니다. | |
|
Windows 운영 체제에 현재 로그온한 사용자의 이름을 가져옵니다. | |
|
프로세스 컨텍스트에 매핑되는 실제 메모리의 크기를 가져옵니다. | |
|
System.Windows.Forms.SystemInformation | |
|
이름 |
설명 |
|
활성 창 추적 지연을 가져옵니다. | |
|
운영 체제에서 최소화된 창을 정렬하는 방향을 나타내는 값을 가져옵니다. | |
|
운영 체제에서 최소화된 창을 정렬하는 데 사용할 시작 위치를 나타내는 ArrangeStartingPosition 값을 가져옵니다. | |
|
3차원 스타일 창 또는 시스템 컨트롤 테두리의 두께(픽셀 단위)를 가져옵니다. | |
|
창 크기 조정 테두리의 두께를 결정하는 데 사용되는 테두리 승수 요소를 가져옵니다. | |
|
2차원 스타일 창 또는 시스템 컨트롤 테두리의 두께를 픽셀 단위로 가져옵니다. | |
|
창의 제목 표시줄에 표시되는 단추의 표준 크기를 픽셀 단위로 가져옵니다. | |
|
창의 표준 제목 표시줄 영역 높이를 픽셀 단위로 가져옵니다. | |
|
캐럿 깜박임 시간을 가져옵니다. | |
|
edit 컨트롤에 나타나는 캐럿의 너비를 픽셀 단위로 가져옵니다. | |
|
로컬 컴퓨터의 NetBIOS 컴퓨터 이름을 가져옵니다. | |
|
커서의 최대 크기를 픽셀 단위로 가져옵니다. | |
|
운영 체제에서 DBCS(더블바이트 문자 집합) 문자를 처리할 수 있는지 여부를 나타내는 값을 가져옵니다. | |
|
USER.EXE의 디버그 버전이 설치되었는지 여부를 나타내는 값을 가져옵니다. | |
|
운영 체제에서 두 번의 클릭을 "두 번 클릭(double-click)"으로 간주하도록 하기 위해 사용자가 두 번 클릭해야 하는 영역의 크기(픽셀 단위)를 가져옵니다. | |
|
두 번 클릭(double-click)이 이루어지기 위해 첫 번째 클릭 이후 두 번째로 클릭할 때까지의 제한 시간을 밀리초 단위로 가져옵니다. | |
|
사용자가 전체 창 끌기를 활성화했는지 여부를 나타내는 값을 가져옵니다. | |
|
마우스 단추를 누른 지점을 중심으로 하고 끌기 작업이 시작되지 않는 사각형의 너비와 높이를 가져옵니다. | |
|
캡션이 있으며 크기를 조정할 수 없는 창의 프레임 테두리 두께(픽셀 단위)를 가져옵니다. | |
|
ClearType 다듬기에 사용되는 글꼴 다듬기 대비 값을 가져옵니다. | |
|
현재의 글꼴 다듬기 형식을 가져옵니다. | |
|
끌기로 크기 조정할 창 둘레에 그려지는 크기 조정 테두리의 두께를 픽셀 단위로 가져옵니다. | |
|
사용자가 내게 필요한 옵션 기능인 고대비 모드를 활성화했는지 여부를 나타내는 값을 가져옵니다. | |
|
시스템 포커스 사각형의 왼쪽 및 오른쪽 가장자리 두께를 픽셀 단위로 가져옵니다. | |
|
크기를 조정 중인 창 둘레의 크기 조정 테두리 왼쪽 및 오른쪽 가장자리의 두께를 픽셀 단위로 가져옵니다. | |
|
가로 스크롤 막대에 있는 화살표 비트맵의 너비(픽셀 단위)를 가져옵니다. | |
|
가로 스크롤 막대의 기본 높이(픽셀 단위)를 가져옵니다. | |
|
가로 스크롤 막대에 있는 스크롤 상자의 너비(픽셀 단위)를 가져옵니다. | |
|
큰 아이콘 보기의 아이콘 정렬 셀 너비(픽셀 단위)를 가져옵니다. | |
|
Windows 기본 프로그램 아이콘 크기(픽셀 단위)를 가져옵니다. | |
|
큰 아이콘 보기로 아이콘을 정렬하는 데 사용되는 모눈 정사각형의 크기(픽셀 단위)를 가져옵니다. | |
|
큰 아이콘 보기의 아이콘 정렬 셀 높이(픽셀 단위)를 가져옵니다. | |
|
활성 창 추적 기능을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
콤보 상자에 슬라이드 방식으로 열기 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
그림자 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
기본 사용자 메뉴가 기본 메뉴 모양인지 여부를 나타내는 값을 가져옵니다. | |
|
글꼴 다듬기를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
메뉴 모음의 메뉴 이름과 같은 사용자 인터페이스 요소에 대해 핫 트래킹을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
아이콘 제목 줄바꿈 기능을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
사용자가 마우스보다 키보드를 우선적으로 사용하며 응용 프로그램에서 키보드 인터페이스를 표시하게 할 것인지 여부를 나타내는 값을 가져옵니다. 이 모드를 선택하지 않는 경우 일반적으로 키보드 인터페이스는 숨겨져 있습니다. | |
|
목록 상자에 부드러운 스크롤 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
메뉴 페이드 또는 슬라이드 애니메이션 기능을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
메뉴 페이드 애니메이션 기능을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
창 최소화 및 복원 애니메이션 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
선택 페이드 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
기본 단추로 이동하는 기능을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
창 제목 표시줄에 그라데이션 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
DBCS(더블바이트 문자 집합) 버전의 Windows 화면 맨 아래에 표시되는 간지 창의 높이(픽셀 단위)를 가져옵니다. | |
|
키보드 반복 지연 설정을 가져옵니다. | |
|
키보드 반복 속도 설정을 가져옵니다. | |
|
캡션 및 크기 조정 테두리가 있는 창의 기본 최대 크기(픽셀 단위)를 가져옵니다. | |
|
메뉴 선택키에 항상 밑줄을 표시하는지 여부를 나타내는 값을 가져옵니다. | |
|
메뉴 모음 단추의 기본 너비(픽셀 단위)와 메뉴 모음의 높이(픽셀 단위)를 가져옵니다. | |
|
메뉴 모음 단추의 기본 크기(픽셀 단위)를 가져옵니다. | |
|
메뉴 확인 표시 영역의 기본 크기(픽셀 단위)를 가져옵니다. | |
|
메뉴에 텍스트를 표시하는 데 사용되는 글꼴을 가져옵니다. | |
|
메뉴 한 줄의 높이(픽셀 단위)를 가져옵니다. | |
|
마우스 커서가 하위 메뉴 항목 위에 있을 때 계단식 바로 가기 메뉴가 표시될 때까지의 시간(밀리초 단위)을 가져옵니다. | |
|
운영 체제에서 히브리어 및 아랍어를 사용할 수 있는지 여부를 나타내는 값을 가져옵니다. | |
|
최소화된 보통 창의 크기(픽셀 단위)를 가져옵니다. | |
|
최소화된 창을 정렬할 때 최소화된 각 창에 할당되는 영역의 크기를 가져옵니다. | |
|
창의 최소 너비 및 높이(픽셀 단위)를 가져옵니다. | |
|
창을 끌어서 크기를 조정하는 동안 창에 적용할 기본 최소 크기(픽셀 단위)를 가져옵니다. | |
|
데스크톱에 있는 디스플레이 모니터의 수를 가져옵니다. | |
|
모든 디스플레이 모니터가 같은 픽셀 색 형식을 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
마우스에 있는 단추 수를 가져옵니다. | |
|
마우스 왼쪽 및 오른쪽 단추의 기능이 바뀌었는지 여부를 나타내는 값을 가져옵니다. | |
|
마우스로 가리킴 메시지가 생성되기 전까지 마우스로 가리킴 시간 동안 마우스 포인터가 머물러 있어야 하는 사각형의 크기(픽셀 단위)를 가져옵니다. | |
|
마우스로 가리킴 메시지가 생성되기 전까지 마우스로 가리킴 사각형 안에 마우스 포인터가 머물러 있어야 하는 시간(밀리초 단위)을 가져옵니다. | |
|
포인팅 장치가 설치되어 있는지 여부를 나타내는 값을 가져옵니다. | |
|
현재 마우스 속도를 가져옵니다. | |
|
마우스에 마우스 휠이 설치되어 있는지 여부를 나타내는 값을 가져옵니다. | |
|
단일 마우스 휠 회전 증분에 대한 델타 값 크기를 가져옵니다. | |
|
마우스 휠이 회전될 때 스크롤할 줄 수를 가져옵니다. | |
|
운영 체제에서 기본적으로 마우스 휠을 지원하는지 여부를 나타내는 값을 가져옵니다. | |
|
현재 네트워크에 연결되어 있는지 여부를 나타내는 값을 가져옵니다. | |
|
Microsoft Windows for Pen Computing 확장이 설치되어 있는지 여부를 나타내는 값을 가져옵니다. | |
|
해당 메뉴 모음 항목을 기준으로 정렬하는 데 사용되는 팝업 메뉴의 측면을 가져옵니다. | |
|
현재 시스템 전원 상태를 가져옵니다. | |
|
기본 디스플레이에서 최대화된 창의 기본 크기(픽셀 단위)를 가져옵니다. | |
|
기본 디스플레이의 현재 비디오 모드 크기(픽셀 단위)를 가져옵니다. | |
|
드롭다운 메뉴가 해당 메뉴 모음 항목 오른쪽에 맞추어져 있는지 여부를 나타내는 값을 가져옵니다. | |
|
화면의 방향을 가져옵니다. | |
|
이 운영 체제에 보안 관리자가 있는지 여부를 나타내는 값을 가져옵니다. | |
|
응용 프로그램에서 청취 가능 형식의 정보를 나타낼 때 시각적 형식으로도 정보를 나타내도록 할지 여부를 나타내는 값을 가져옵니다. | |
|
크기를 조정 중인 창 둘레에 그려지는 크기 조정 테두리의 너비(픽셀 단위)를 가져옵니다. | |
|
작은 캡션 단추의 너비(픽셀 단위)와 작은 캡션의 높이(픽셀 단위)를 가져옵니다. | |
|
작은 아이콘의 크기(픽셀 단위)를 가져옵니다. | |
|
호출 프로세스가 터미널 서비스 클라이언트 세션에 연결되는지 여부를 나타내는 값을 가져옵니다. | |
|
작은 캡션 단추의 크기(픽셀 단위)를 가져옵니다. | |
|
도구 창 캡션의 높이(픽셀 단위)를 가져옵니다. | |
|
UI(사용자 인터페이스) 효과를 사용하는지 여부를 나타내는 값을 가져옵니다. | |
|
사용자가 속하는 도메인의 이름을 가져옵니다. | |
|
현재 프로세스가 사용자 대화형 모드로 실행되고 있는지 여부를 나타내는 값을 가져옵니다. | |
|
현재 스레드와 연결된 사용자 이름을 가져옵니다. | |
|
시스템 포커스 사각형의 위쪽 및 아래쪽 가장자리 두께(픽셀 단위)를 가져옵니다. | |
|
크기를 조정 중인 창 둘레의 크기 조정 테두리 위쪽 및 아래쪽 가장자리의 두께(픽셀 단위)를 가져옵니다. | |
|
세로 스크롤 막대에 있는 화살표 비트맵의 높이(픽셀 단위)를 가져옵니다. | |
|
세로 스크롤 막대에 있는 스크롤 상자의 높이(픽셀 단위)를 가져옵니다. | |
|
세로 스크롤 막대의 기본 너비(픽셀 단위)를 가져옵니다. | |
|
가상 화면의 경계를 가져옵니다. | |
|
화면의 작업 영역 크기(픽셀 단위)를 가져옵니다. | |
3. 사용자 권한정보 알아오기
1) 기본
|
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); // 1
if (princ.IsInRole(WindowsBuiltInRole.Administrator) == true) { // 이사람은 Admin계정이다!!! } |
: 현재의 어플리케이션 도메인의 오브젝트에 대해서 법칙(WindowsPrincipal 오브젝트)을 설정하고 있는것!
사실, 디폴트 상태에서는 스레드에 대한 WindowsPrincipal 오브젝트의 법칙이 작성되지 않기 때문에,
1과 같이 설정하지 않으면 스래드에서 WindowsPrincipal을 취득시 에러가 발생한다.
2) 응용
|
WindowsIdentity WindowsIdentity = WindowsIdentity.GetCurrent();
if (WindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator) == true) { // 이사람은 Admin계정이다!!! } |
: 이 방법에서는 WindowsPrincipal을 직접 생성하므로 제약이 적어서 이용이 쉽지만,
복수의 코드에서 반복적으로 시큐리티 검증을 사용하는 경우에는,
오브젝트 생성의 오버해드가 있기 때문에(오브젝트가 재이용되지 않는다.) 그다지 추천은 안함;
역시, 시작시에 한번만 롤 베이스의 시큐리티 검증을 하는 경우 이외에는 기본을 이용하는것을 추천!
참고)
http://2005elc.elancer.co.kr/eTimes/page/eTimes_view.html?str=c2VsdW5vPTI2NQ==
http://2005elc.elancer.co.kr/eTimes/page/eTimes_view.html?str=c2VsdW5vPTI2Nw==
http://whatisthat.co.kr/65