'2010/06'에 해당되는 글 3건

  1. 2010.06.29 .NET환경에서 사용자 컴퓨터 환경 알아오기 (4)

 

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

이름

설명

CommandLine

이 프로세스에 대한 명령줄을 가져옵니다.

CurrentDirectory

현재 작업 디렉터리의 정규화된 경로를 가져오거나 설정합니다.

ExitCode

프로세스의 종료 코드를 가져오거나 설정합니다.

HasShutdownStarted

런타임의 종료 여부 또는 현재 응용 프로그램 도메인의 언로드 여부를 나타내는 값을 가져옵니다.

MachineName

이 로컬 컴퓨터의 NetBIOS 이름을 가져옵니다.

NewLine

이 환경에 대해 정의된 줄 바꿈 문자열을 가져옵니다.

OSVersion

현재 플랫폼 식별자와 버전 번호가 들어 있는 OperatingSystem 개체를 가져옵니다.

ProcessorCount

현재 컴퓨터의 프로세서 수를 가져옵니다.

StackTrace

현재 스택 추적 정보를 가져옵니다.

SystemDirectory

시스템 디렉터리의 정규화된 경로를 가져옵니다.

TickCount

시스템 시작 이후 경과 시간(밀리초)을 가져옵니다.

UserDomainName

현재 사용자와 관련된 네트워크 도메인 이름을 가져옵니다.

UserInteractive

현재 프로세스가 사용자 대화형 모드로 실행되고 있는지 여부를 나타내는 값을 가져옵니다.

UserName

Windows 운영 체제에 현재 로그온한 사용자의 이름을 가져옵니다.

Version

런타임의 주 번호, 보조 번호, 빌드 번호 및 수정 번호를 설명하는 Version 개체를 가져옵니다.

WorkingSet

프로세스 컨텍스트에 매핑되는 실제 메모리의 크기를 가져옵니다.


System.Windows.Forms.SystemInformation

이름

설명

ActiveWindowTrackingDelay

활성 창 추적 지연을 가져옵니다.

ArrangeDirection

운영 체제에서 최소화된 창을 정렬하는 방향을 나타내는 값을 가져옵니다.

ArrangeStartingPosition

운영 체제에서 최소화된 창을 정렬하는 데 사용할 시작 위치를 나타내는 ArrangeStartingPosition 값을 가져옵니다.

BootMode

시스템 시작에 사용된 부팅 모드를 나타내는 BootMode 값을 가져옵니다.

Border3DSize

3차원 스타일 창 또는 시스템 컨트롤 테두리의 두께(픽셀 단위)를 가져옵니다.

BorderMultiplierFactor

창 크기 조정 테두리의 두께를 결정하는 데 사용되는 테두리 승수 요소를 가져옵니다.

BorderSize

2차원 스타일 창 또는 시스템 컨트롤 테두리의 두께를 픽셀 단위로 가져옵니다.

CaptionButtonSize

창의 제목 표시줄에 표시되는 단추의 표준 크기를 픽셀 단위로 가져옵니다.

CaptionHeight

창의 표준 제목 표시줄 영역 높이를 픽셀 단위로 가져옵니다.

CaretBlinkTime

캐럿 깜박임 시간을 가져옵니다.

CaretWidth

edit 컨트롤에 나타나는 캐럿의 너비를 픽셀 단위로 가져옵니다.

ComputerName

로컬 컴퓨터의 NetBIOS 컴퓨터 이름을 가져옵니다.

CursorSize

커서의 최대 크기를 픽셀 단위로 가져옵니다.

DbcsEnabled

운영 체제에서 DBCS(더블바이트 문자 집합) 문자를 처리할 수 있는지 여부를 나타내는 값을 가져옵니다.

DebugOS

USER.EXE의 디버그 버전이 설치되었는지 여부를 나타내는 값을 가져옵니다.

DoubleClickSize

운영 체제에서 두 번의 클릭을 "두 번 클릭(double-click)"으로 간주하도록 하기 위해 사용자가 두 번 클릭해야 하는 영역의 크기(픽셀 단위)를 가져옵니다.

DoubleClickTime

두 번 클릭(double-click)이 이루어지기 위해 첫 번째 클릭 이후 두 번째로 클릭할 때까지의 제한 시간을 밀리초 단위로 가져옵니다.

DragFullWindows

사용자가 전체 창 끌기를 활성화했는지 여부를 나타내는 값을 가져옵니다.

DragSize

마우스 단추를 누른 지점을 중심으로 하고 끌기 작업이 시작되지 않는 사각형의 너비와 높이를 가져옵니다.

FixedFrameBorderSize

캡션이 있으며 크기를 조정할 수 없는 창의 프레임 테두리 두께(픽셀 단위)를 가져옵니다.

FontSmoothingContrast

ClearType 다듬기에 사용되는 글꼴 다듬기 대비 값을 가져옵니다.

FontSmoothingType

현재의 글꼴 다듬기 형식을 가져옵니다.

FrameBorderSize

끌기로 크기 조정할 창 둘레에 그려지는 크기 조정 테두리의 두께를 픽셀 단위로 가져옵니다.

HighContrast

사용자가 내게 필요한 옵션 기능인 고대비 모드를 활성화했는지 여부를 나타내는 값을 가져옵니다.

HorizontalFocusThickness

시스템 포커스 사각형의 왼쪽 및 오른쪽 가장자리 두께를 픽셀 단위로 가져옵니다.

HorizontalResizeBorderThickness

크기를 조정 중인 창 둘레의 크기 조정 테두리 왼쪽 및 오른쪽 가장자리의 두께를 픽셀 단위로 가져옵니다.

HorizontalScrollBarArrowWidth

가로 스크롤 막대에 있는 화살표 비트맵의 너비(픽셀 단위)를 가져옵니다.

HorizontalScrollBarHeight

가로 스크롤 막대의 기본 높이(픽셀 단위)를 가져옵니다.

HorizontalScrollBarThumbWidth

가로 스크롤 막대에 있는 스크롤 상자의 너비(픽셀 단위)를 가져옵니다.

IconHorizontalSpacing

큰 아이콘 보기의 아이콘 정렬 셀 너비(픽셀 단위)를 가져옵니다.

IconSize

Windows 기본 프로그램 아이콘 크기(픽셀 단위)를 가져옵니다.

IconSpacingSize

큰 아이콘 보기로 아이콘을 정렬하는 데 사용되는 모눈 정사각형의 크기(픽셀 단위)를 가져옵니다.

IconVerticalSpacing

큰 아이콘 보기의 아이콘 정렬 셀 높이(픽셀 단위)를 가져옵니다.

IsActiveWindowTrackingEnabled

활성 창 추적 기능을 사용하는지 여부를 나타내는 값을 가져옵니다.

IsComboBoxAnimationEnabled

콤보 상자에 슬라이드 방식으로 열기 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsDropShadowEnabled

그림자 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsFlatMenuEnabled

기본 사용자 메뉴가 기본 메뉴 모양인지 여부를 나타내는 값을 가져옵니다.

IsFontSmoothingEnabled

글꼴 다듬기를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsHotTrackingEnabled

메뉴 모음의 메뉴 이름과 같은 사용자 인터페이스 요소에 대해 핫 트래킹을 사용하는지 여부를 나타내는 값을 가져옵니다.

IsIconTitleWrappingEnabled

아이콘 제목 줄바꿈 기능을 사용하는지 여부를 나타내는 값을 가져옵니다.

IsKeyboardPreferred

사용자가 마우스보다 키보드를 우선적으로 사용하며 응용 프로그램에서 키보드 인터페이스를 표시하게 할 것인지 여부를 나타내는 값을 가져옵니다. 이 모드를 선택하지 않는 경우 일반적으로 키보드 인터페이스는 숨겨져 있습니다.

IsListBoxSmoothScrollingEnabled

목록 상자에 부드러운 스크롤 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsMenuAnimationEnabled

메뉴 페이드 또는 슬라이드 애니메이션 기능을 사용하는지 여부를 나타내는 값을 가져옵니다.

IsMenuFadeEnabled

메뉴 페이드 애니메이션 기능을 사용하는지 여부를 나타내는 값을 가져옵니다.

IsMinimizeRestoreAnimationEnabled

창 최소화 및 복원 애니메이션 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsSelectionFadeEnabled

선택 페이드 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsSnapToDefaultEnabled

기본 단추로 이동하는 기능을 사용하는지 여부를 나타내는 값을 가져옵니다.

IsTitleBarGradientEnabled

창 제목 표시줄에 그라데이션 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

IsToolTipAnimationEnabled

ToolTip 애니메이션을 사용하는지 여부를 나타내는 값을 가져옵니다.

KanjiWindowHeight

DBCS(더블바이트 문자 집합) 버전의 Windows 화면 맨 아래에 표시되는 간지 창의 높이(픽셀 단위)를 가져옵니다.

KeyboardDelay

키보드 반복 지연 설정을 가져옵니다.

KeyboardSpeed

키보드 반복 속도 설정을 가져옵니다.

MaxWindowTrackSize

캡션 및 크기 조정 테두리가 있는 창의 기본 최대 크기(픽셀 단위)를 가져옵니다.

MenuAccessKeysUnderlined

메뉴 선택키에 항상 밑줄을 표시하는지 여부를 나타내는 값을 가져옵니다.

MenuBarButtonSize

메뉴 모음 단추의 기본 너비(픽셀 단위)와 메뉴 모음의 높이(픽셀 단위)를 가져옵니다.

MenuButtonSize

메뉴 모음 단추의 기본 크기(픽셀 단위)를 가져옵니다.

MenuCheckSize

메뉴 확인 표시 영역의 기본 크기(픽셀 단위)를 가져옵니다.

MenuFont

메뉴에 텍스트를 표시하는 데 사용되는 글꼴을 가져옵니다.

MenuHeight

메뉴 한 줄의 높이(픽셀 단위)를 가져옵니다.

MenuShowDelay

마우스 커서가 하위 메뉴 항목 위에 있을 때 계단식 바로 가기 메뉴가 표시될 때까지의 시간(밀리초 단위)을 가져옵니다.

MidEastEnabled

운영 체제에서 히브리어 및 아랍어를 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

MinimizedWindowSize

최소화된 보통 창의 크기(픽셀 단위)를 가져옵니다.

MinimizedWindowSpacingSize

최소화된 창을 정렬할 때 최소화된 각 창에 할당되는 영역의 크기를 가져옵니다.

MinimumWindowSize

창의 최소 너비 및 높이(픽셀 단위)를 가져옵니다.

MinWindowTrackSize

창을 끌어서 크기를 조정하는 동안 창에 적용할 기본 최소 크기(픽셀 단위)를 가져옵니다.

MonitorCount

데스크톱에 있는 디스플레이 모니터의 수를 가져옵니다.

MonitorsSameDisplayFormat

모든 디스플레이 모니터가 같은 픽셀 색 형식을 사용하는지 여부를 나타내는 값을 가져옵니다.

MouseButtons

마우스에 있는 단추 수를 가져옵니다.

MouseButtonsSwapped

마우스 왼쪽 및 오른쪽 단추의 기능이 바뀌었는지 여부를 나타내는 값을 가져옵니다.

MouseHoverSize

마우스로 가리킴 메시지가 생성되기 전까지 마우스로 가리킴 시간 동안 마우스 포인터가 머물러 있어야 하는 사각형의 크기(픽셀 단위)를 가져옵니다.

MouseHoverTime

마우스로 가리킴 메시지가 생성되기 전까지 마우스로 가리킴 사각형 안에 마우스 포인터가 머물러 있어야 하는 시간(밀리초 단위)을 가져옵니다.

MousePresent

포인팅 장치가 설치되어 있는지 여부를 나타내는 값을 가져옵니다.

MouseSpeed

현재 마우스 속도를 가져옵니다.

MouseWheelPresent

마우스에 마우스 휠이 설치되어 있는지 여부를 나타내는 값을 가져옵니다.

MouseWheelScrollDelta

단일 마우스 휠 회전 증분에 대한 델타 값 크기를 가져옵니다.

MouseWheelScrollLines

마우스 휠이 회전될 때 스크롤할 줄 수를 가져옵니다.

NativeMouseWheelSupport

운영 체제에서 기본적으로 마우스 휠을 지원하는지 여부를 나타내는 값을 가져옵니다.

Network

현재 네트워크에 연결되어 있는지 여부를 나타내는 값을 가져옵니다.

PenWindows

Microsoft Windows for Pen Computing 확장이 설치되어 있는지 여부를 나타내는 값을 가져옵니다.

PopupMenuAlignment

해당 메뉴 모음 항목을 기준으로 정렬하는 데 사용되는 팝업 메뉴의 측면을 가져옵니다.

PowerStatus

현재 시스템 전원 상태를 가져옵니다.

PrimaryMonitorMaximizedWindowSize

기본 디스플레이에서 최대화된 창의 기본 크기(픽셀 단위)를 가져옵니다.

PrimaryMonitorSize

기본 디스플레이의 현재 비디오 모드 크기(픽셀 단위)를 가져옵니다.

RightAlignedMenus

드롭다운 메뉴가 해당 메뉴 모음 항목 오른쪽에 맞추어져 있는지 여부를 나타내는 값을 가져옵니다.

ScreenOrientation

화면의 방향을 가져옵니다.

Secure

이 운영 체제에 보안 관리자가 있는지 여부를 나타내는 값을 가져옵니다.

ShowSounds

응용 프로그램에서 청취 가능 형식의 정보를 나타낼 때 시각적 형식으로도 정보를 나타내도록 할지 여부를 나타내는 값을 가져옵니다.

SizingBorderWidth

크기를 조정 중인 창 둘레에 그려지는 크기 조정 테두리의 너비(픽셀 단위)를 가져옵니다.

SmallCaptionButtonSize

작은 캡션 단추의 너비(픽셀 단위)와 작은 캡션의 높이(픽셀 단위)를 가져옵니다.

SmallIconSize

작은 아이콘의 크기(픽셀 단위)를 가져옵니다.

TerminalServerSession

호출 프로세스가 터미널 서비스 클라이언트 세션에 연결되는지 여부를 나타내는 값을 가져옵니다.

ToolWindowCaptionButtonSize

작은 캡션 단추의 크기(픽셀 단위)를 가져옵니다.

ToolWindowCaptionHeight

도구 창 캡션의 높이(픽셀 단위)를 가져옵니다.

UIEffectsEnabled

UI(사용자 인터페이스) 효과를 사용하는지 여부를 나타내는 값을 가져옵니다.

UserDomainName

사용자가 속하는 도메인의 이름을 가져옵니다.

UserInteractive

현재 프로세스가 사용자 대화형 모드로 실행되고 있는지 여부를 나타내는 값을 가져옵니다.

UserName

현재 스레드와 연결된 사용자 이름을 가져옵니다.

VerticalFocusThickness

시스템 포커스 사각형의 위쪽 및 아래쪽 가장자리 두께(픽셀 단위)를 가져옵니다.

VerticalResizeBorderThickness

크기를 조정 중인 창 둘레의 크기 조정 테두리 위쪽 및 아래쪽 가장자리의 두께(픽셀 단위)를 가져옵니다.

VerticalScrollBarArrowHeight

세로 스크롤 막대에 있는 화살표 비트맵의 높이(픽셀 단위)를 가져옵니다.

VerticalScrollBarThumbHeight

세로 스크롤 막대에 있는 스크롤 상자의 높이(픽셀 단위)를 가져옵니다.

VerticalScrollBarWidth

세로 스크롤 막대의 기본 너비(픽셀 단위)를 가져옵니다.

VirtualScreen

가상 화면의 경계를 가져옵니다.

WorkingArea

화면의 작업 영역 크기(픽셀 단위)를 가져옵니다.

 

3. 사용자 권한정보 알아오기

 

1) 기본

 AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);     // 1
 WindowsPrincipal princ = (WindowsPrincipal)System.Threading.Thread.CurrentPrincipal; 

               

 if (princ.IsInRole(WindowsBuiltInRole.Administrator) == true)

{

   // 이사람은 Admin계정이다!!!

}          

 :   현재의 어플리케이션 도메인의 오브젝트에 대해서 법칙(WindowsPrincipal 오브젝트)을 설정하고 있는것!

     사실, 디폴트 상태에서는 스레드에 대한 WindowsPrincipal 오브젝트의 법칙이 작성되지 않기 때문에,

     1과 같이 설정하지 않으면 스래드에서 WindowsPrincipal을 취득시 에러가 발생한다.

 

 

2) 응용

 WindowsIdentity WindowsIdentity = WindowsIdentity.GetCurrent();
 WindowsPrincipal WindowsPrincipal = new WindowsPrincipal(WindowsIdentity);

 

 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


저작자 표시
신고
Posted by 천재소녀*
이전버튼 1 2 3 이전버튼

블로그 이미지
꿈꾸는아이, ㅋ Tasha의 완전범죄 구상소
천재소녀*

공지사항

Yesterday29
Today12
Total151,446

달력

 « |  » 2010.06
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

최근에 받은 트랙백

글 보관함


티스토리 툴바