SysGet

화면 해상도, 다중-모니터 정보, 시스템 객체의 크기, 그리고 기타 시스템 특성을 열람합니다.

SysGet, OutputVar, SubCommand , Value

The OutputVar parameter is the name of the output variable in which to store the result. SubCommandValue 매개변수는 서로 의존합니다. 그 사용법은 아래에 기술합니다.

부-명령어

For SubCommand, specify one of the following:

MonitorCount

모니터의 총 개수를 열람합니다.

SysGet, OutputVar, MonitorCount

Unlike SM_CMONITORS mentioned in the table below, this sub-command includes all monitors, even those not being used as part of the desktop.

MonitorPrimary

기본 모니터의 번호를 열람합니다.

SysGet, OutputVar, MonitorPrimary

In a single-monitor system, this will be always 1.

Monitor

N번 모니터의 둘레 좌표를 열람합니다.

SysGet, OutputVar, Monitor , N

N을 생략하면, 기본 모니터가 사용됩니다. 정보는 네 개의 변수 안에 저장됩니다. 네 변수의 이름은 모두 OutputVar로 시작합니다. N이 너무 크거나 정보를 열람하는 데 문제가 있으면, 이 네 변수는 모두 비워집니다. 예를 들어:

SysGet, Mon2, Monitor, 2
MsgBox, Left: %Mon2Left% -- Top: %Mon2Top% -- Right: %Mon2Right% -- Bottom %Mon2Bottom%.

함수 안에서, 지역 변수가 아닌 전역 변수의 집합을 만들려면, 이 명령어를 사용하기 전에 먼저 Mon2를 전역 변수로 선언 하십시오 (전역-간주 함수에 대하여 그 반대도 마찬가지입니다). 그렇지만, 흔한 혼란의 근원 때문에, 종종 각 변수를 집합 안에 선언하는 것이 필요하기도 합니다.

MonitorWorkArea

Retrieves the working area's bounding coordinates of monitor number N.

SysGet, OutputVar, MonitorWorkArea , N

Same as the Monitor sub-command above except the area is reduced to exclude the area occupied by the taskbar and other registered desktop toolbars.

MonitorName

Retrieves the operating system's name of monitor number N.

SysGet, OutputVar, MonitorName , N

N을 생략하면, 기본 모니터가 사용됩니다.

(Numeric)

SubCommand에 아래 테이블에 있는 숫자 중 하나를 지정하면 상응하는 값을 열람할 수 있습니다.

SysGet, OutputVar, N

다음 예제는 마우스 버튼의 개수를 이름이 "MouseButtonCount"인 변수에 저장합니다: SysGet, MouseButtonCount, 43.

자주 사용됨

Number 설명
80 SM_CMONITORS: 바탕화면의 디스플레이 모니터의 번호 ("비-디스플레이 의사-모니터는 제외").
43 SM_CMOUSEBUTTONS: 마우스의 버튼의 개수 (마우스가 설치되어 있지 않으면 0).
16, 17 SM_CXFULLSCREEN, SM_CYFULLSCREEN: 기본 디스플레이 모니터의 전체-화면 창에 대하여 클라이언트 구역의 픽셀단위 너비와 높이.
61, 62 SM_CXMAXIMIZED, SM_CYMAXIMIZED: 기본 디스플레이 모니터의 최대화된 최상위 창의 픽셀 단위 기본 크기.
59, 60 SM_CXMAXTRACK, SM_CYMAXTRACK: 캡션과 크기 조절 테두리가 있는 창의 픽셀 단위로 기본 최대 크기. 이 크기는 전체 바탕화면을 가리킵니다. 사용자는 창 프레임을 끌어 이 크기보다 더 크게 만들 수 없습니다.
28, 29 SM_CXMIN, SM_CYMIN: 픽셀단위 창의 최대 너비와 높이.
57, 58 SM_CXMINIMIZED, SM_CYMINIMIZED: 픽셀 단위 최소화된 창의 크기.
34, 35 SM_CXMINTRACK, SM_CYMINTRACK: 한 창의 최소 추적 너비와 높이, 픽셀 단위. 사용자는 창 프레임을 끌어 이 크기보다 더 작게 만들 수 없습니다. 창은 WM_GETMINMAXINFO 메시지를 처리하면 이 값들을 오버라이드 할 수 있습니다.
0, 1 SM_CXSCREEN, SM_CYSCREEN: 기본 디스플레이 모니터의 화면 높이와 너비, 픽셀 단위. 내장 변수 A_ScreenWidth 그리고 A_ScreenHeight와 동일합니다.
78, 79 SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN: 가상 화면의 너비와 높이, 픽셀 단위입니다. 가상 화면은 모든 디스플레이 모니터의 사각 테두리입니다. SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN는 가상 화면의 좌상 모서리 좌표입니다.
19 SM_MOUSEPRESENT: 마우스가 설치되어 있으면 0 아닌 값; 그렇지 않으면 0.
75 SM_MOUSEWHEELPRESENT: 휠 마우스가 설치되어 있으면 0 아닌 값; 그렇지 않으면 0.
63 SM_NETWORK: 네트워크가 존재하면 LSB(Least significant bit)가 설정됩니다; 그렇지 않으면 지워집니다. 다른 비트들은 미래의 사용을 위해 예야되어 있습니다.
8193 SM_REMOTECONTROL: 이 시스템 숫치는 터미널 서비스 환경에서 사용됩니다. 현재 세션이 원격 제어되고 있으면 그의 값은 0이 아닙니다; 그렇지 않으면 0.
4096 SM_REMOTESESSION: 이 시스템 숫치는 터미널 서비스 환경에서 사용됩니다. 호출 프로세스가 터미널 서비스 클라이언트 세션에 연관되어 있으면, 반환 값은 0이 아닙니다. 호출 프로세스가 터미널 서버 콘솔 세션에 연관되어 있으면, 반환 값은 0입니다. 콘솔 세션이 반드시 물리적 콘솔이어야 할 필요는 없습니다.
70 SM_SHOWSOUNDS: 사용자가 어플리케이션을 시각적으로 정보를 보여주도록 요구하면 0이 아닌 값입니다. 보통은 정보를 청각 형태로만 제시합니다; 그렇지 않으면 0.
8192 SM_SHUTTINGDOWN: 현재 세션이 닫히고 있는 중이면 0이 아닌 값입니다; 그렇지 않으면 0. Windows 2000: 반환된 값은 항상 0입니다.
23 SM_SWAPBUTTON: 좌우 마우스 버튼의 의미가 서로 바뀌었으면 0이 아닙니다; 그렇지 않으면 0.
76, 77 SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN: 가상 화면의 좌상 모서리 좌표. 가상 화면은 모든 디스플레이 모니터의 사각 테두리입니다. 대조적으로, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN는 가상 화면의 너비와 높이입니다.

자주 사용되지 않음

Number 설명
56 SM_ARRANGE: 시스템이 최소화된 창들을 어떻게 정렬할지 지정하는 플래그. 더 자세한 정보는 MSDN 참조.
67

SM_CLEANBOOT: 시스템이 어떻게 시작할지를 지정합니다:

  • 0 = 정상 부트
  • 1 = 안전 부트
  • 2 = 네트워크가 있는 안전 부트
5, 6 SM_CXBORDER, SM_CYBORDER: 창 데투리의 너비와 높이, 픽셀 단위. 이것은 3-D 모습을 갖춘 창에 대하여 SM_CXEDGE 값과 동일합니다.
13, 14 SM_CXCURSOR, SM_CYCURSOR: 커서의 너비와 높이, 픽셀 단위. 시스템은 다른 크기의 커서를 만들 수 없습니다.
36, 37 SM_CXDOUBLECLK, SM_CYDOUBLECLK: 더블클릭 연속에서 첫 번째 클릭의 위치를 둘러싼 사각 구역의 너비와 높이. 픽셀 단위. 두 번째 클릭은 반드시 이 사각 구역 안에서 일어나야 시스템이 그 두 클릭을 더블 클릭으로 간주합니다. (두 클릭은 또 지정된 시간 안에 일어나야 합니다.)
68, 69 SM_CXDRAG, SM_CYDRAG: 드래그 지점 가운데에 놓이는 사각형의 너비와 높이. 드래그 연산이 시작되기 전에 마우스 포인터의 제한된 이동을 허용합니다. 그 덕분에 사용자는 의도치 않게 드래그 연산을 할 필요 없이 마우스를 쉽게 클릭하고 놓을 수 있습니다.
45, 46 SM_CXEDGE, SM_CYEDGE: 3-D 테두리의 크기, 픽셀 단위. SM_CXBORDER 그리고 SM_CYBORDER의 3-D 짝입니다.
7, 8 SM_CXFIXEDFRAME, SM_CYFIXEDFRAME (다음과 동등:SM_CXDLGFRAME, SM_CYDLGFRAME): 캡션은 있지만 크기 조절은 불가능한 창의 외곽의 프레임 두께, 픽셀 단위. SM_CXFIXEDFRAME은 수평 테두리의 높이이고 SM_CYFIXEDFRAME은 수직 테두리의 너비입니다.
83, 84 SM_CXFOCUSBORDER, SM_CYFOCUSBORDER: 초점이 있는 한 콘트롤의 사각 구역의 좌우 가장자리 너비 그리고 상하 가장자리 높이 (픽셀 단위). Windows 2000: 반환된 값은 항상 0입니다.
21, 3 SM_CXHSCROLL, SM_CYHSCROLL: 수평 스크롤 바의 화살표 비트맵의 너비, 픽셀 단위; 수평 스크롤 바의 높이, 픽셀 단위.
10 SM_CXHTHUMB: 수평 스크롤바의 엄지 박스의 너비, 픽셀 단위.
11, 12 SM_CXICON, SM_CYICON: 아이콘의 기본 너비와 높이, 픽셀 단위.
38, 39 SM_CXICONSPACING, SM_CYICONSPACING: 큰 아이콘 뷰의 항목에 대하여 격자 셀의 크기, 픽셀 단위. 각 항목은 정렬될 때 이 크기의 사각형에 맞게 크기가 바뀝니다. 이 값들은 언제나 SM_CXICON 그리고 SM_CYICON보다 크거나 같습니다.
71, 72 SM_CXMENUCHECK, SM_CYMENUCHECK: 기본 메뉴 체크-표식 비트맵의 크기, 픽셀 단위.
54, 55 SM_CXMENUSIZE, SM_CYMENUSIZE: 메뉴 바 버튼의 크기, 예를 들어 다중 문서 인터페이스에 사용되는 자손 창 닫기 버튼, 픽셀 단위.
47, 48 SM_CXMINSPACING SM_CYMINSPACING: 최소화된 창에 대한 격자 셀의 크기, 각각의 최소화된 창은 정렬될 때 이 크기의 사각형 안에 맞게 크기가 조절됩니다. 이 값들은 언제나 SM_CXMINIMIZED 그리고 SM_CYMINIMIZED보다 크거나 같습니다
30, 31 SM_CXSIZE, SM_CYSIZE: 창의 캡션이나 타이틀 바에 있는 버튼의 너비와 높이, 픽셀 단위.
32, 33 SM_CXSIZEFRAME, SM_CYSIZEFRAME: 크기 조절이 가능한 창 외곽의 크기 조절 테두리의 두께, 픽셀 단위. SM_CXSIZEFRAME는 수평 테두리의 너비이고, SM_CYSIZEFRAME는 수직 테두리의 높이입니다. SM_CXFRAME 그리고 SM_CYFRAME와 동의어.
49, 50 SM_CXSMICON, SM_CYSMICON: 작은 아이콘에 추천하는 크기, 픽셀 단위. 작은 아이콘은 전형적으로 창 캡션과 작은 아이콘 뷰에 나타납니다.
52, 53 SM_CXSMSIZE SM_CYSMSIZE: 작은 캡션 버튼의 크기, 픽셀 단위.
2, 20 SM_CXVSCROLL, SM_CYVSCROLL: 수직 스크롤바의 너비, 픽셀 단위; 그리고 수직 스크롤 바의 화살표 비트맵의 높이, 픽셀 단위.
4 SM_CYCAPTION: 캡션 구역의 높이, 픽셀 단위.
18 SM_CYKANJIWINDOW: 2 바이트 문자 세트 버전의 시스템에 대하여, 화면 하단의 한자 창의 높이입니다. 픽셀 단위.
15 SM_CYMENU: 한 줄 메뉴바의 높이, 픽셀 단위.
51 SM_CYSMCAPTION: 작은 캡션의 높이, 픽셀 단위.
9 SM_CYVTHUMB: 수직 스크롤 바의 엄지 박스의 높이, 픽셀 단위.
42 SM_DBCSENABLED: User32.dll가 DBCS를 지원하면 0 아닌 값; 그렇지 않으면 0.
22 SM_DEBUG: 디버그 버전의 User.exe가 설치되어 있으면 0 아닌 값; 그렇지 않으면 0.
82

SM_IMMENABLED: 다국어 입력이 가능하면 0이 아닌 값; 그렇지 않으면 0.

SM_IMMENABLED는 시스템이 유니코드 어플리케이션에서 유니코드 기반의 IME를 사용할 준비가 되어 있는지 알려 줍니다. 언어-종속적 IME가 작동하는지 확인하려면, SM_DBCSENABLED와 시스템 ANSI 코드 페이지를 점검하십시오. 그렇지 않으면 ANSI-to-Unicode 변환이 올바르게 수행되지 않을 수 있습니다. 아니면 글꼴이나 레지스트리 설정과 같은 구성요소가 존재하지 않을 수 있습니다.

87 SM_MEDIACENTER: 현재 운영 체제가 Windows XP, Media Center Edition이면 0 아닌 값, 그렇지 않으면 0.
40 SM_MENUDROPALIGNMENT: 드롭-다운 메뉴가 상응하는 메뉴 바 항목과 함께 오른쪽 정렬 되어 있으면 0 아닌 값, 메뉴가 왼쪽 정렬되어 있으면 0.
74 SM_MIDEASTENABLED: 시스템에 Hebrew 그리고 Arabic 언어가 사용 가능하면 0 아닌 값, 그렇지 않으면 0.
41 SM_PENWINDOWS: 펜 컴퓨팅 확장이 설치되어 있으면 0 아닌 값; 그렇지 않으면 0.
44 SM_SECURE: 보안이 설정되어 있으면 0 아닌 값; 그렇지 않으면 0.
81 SM_SAMEDISPLAYFORMAT: 모든 디스플레이 모니터가 같은 컬러 포맷이면 0 아닌 값, 그렇지 않으면 0. 두 개의 디스플레이가 비트 깊이는 같지만 컬러 포맷은 다를 수 있다는 것에 주목하십시오. 예를 들어, 적, 녹, 청 픽셀은 다른 개수의 비트로 인코드될 수 있습니다. 또는 그런 비트들은 한 픽셀의 컬러 값으로 다른 장소에 위치할 수 있습니다.
86 SM_TABLETPC: 현재 운영 체제가 Windows XP Tablet PC 에디션이면 0 아닌 값, 그렇지 않으면 0입니다.

논평

내장 변수 A_ScreenWidthA_ScreenHeight에 픽셀 단위로 기본 모니터의 크기가 들어 있습니다.

DllCall(), WinGet

예제

Retrieves the number of mouse buttons and stores it in MouseButtonCount.

SysGet, MouseButtonCount, 43

Retrieves the width and height of the virtual screen and stores them in VirtualScreenWidth and VirtualScreenHeight.

SysGet, VirtualScreenWidth, 78
SysGet, VirtualScreenHeight, 79

각 모니터의 정보를 보여줍니다.

SysGet, MonitorCount, MonitorCount
SysGet, MonitorPrimary, MonitorPrimary
MsgBox, Monitor Count:`t%MonitorCount%`nPrimary Monitor:`t%MonitorPrimary%
Loop, %MonitorCount%
{
    SysGet, MonitorName, MonitorName, %A_Index%
    SysGet, Monitor, Monitor, %A_Index%
    SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
    MsgBox, Monitor:`t#%A_Index%`nName:`t%MonitorName%`nLeft:`t%MonitorLeft% (%MonitorWorkAreaLeft% work)`nTop:`t%MonitorTop% (%MonitorWorkAreaTop% work)`nRight:`t%MonitorRight% (%MonitorWorkAreaRight% work)`nBottom:`t%MonitorBottom% (%MonitorWorkAreaBottom% work)
}