안녕하세요. 엔지엠소프트웨어입니다. 함수에 윈도우 API 액션 사용법에 대해 알아보도록 하겠습니다. 우선, 엔지엠 에디터를 실행한 후 새로운 스크립트에 윈도우 API 액션을 추가하세요. 액션보다 직접 코딩으로 계산할 때 유용하게 사용할 수 있습니다. 각각의 기능 및 함수 목록은 아래 내용을 참고하세요.
[ 엔지엠 매크로 직접 변수 도움말 보기 (Direct Variable) ]
명령은 아래와 같이 간단하게 수식을 계산할 수 있습니다. 명령에 2022+1을 입력하고, 실행하면 하단 아웃풋 및 결과 값에 2023이 출력됩니다.
1. getDateTime
getDateTime 함수는 날짜와 시간을 가져옵니다. 결과 값에 현재 날짜와 시간(yyyy-MM-dd HH:mm:ss.fff)이 표시됩니다.
만약, 현재 시간에 1시간을 더하려면 아래와 같이 처리할 수 있습니다.
{getDateTime(HH)}+1
년도를 가져와서 5년을 더하면 아래와 같습니다.
{getDateTime(yyyy)}+5
날짜 함수의 인자 의미는 아래와 같습니다.
- yyyy: 년도
- MM: 월
- dd: 일
- HH: 시
- mm: 분
- ss: 초
- fff: 밀리초
년월일만 가져오려면 아래와 같이 처리합니다.
{getDateTime(yyyy-MM-dd)}
반복하면서 초를 확인하고 싶으면 아래와 같이 할 수 있습니다. 우연히 1초와 실행 시간이 맞아 떨어졌네요. 결과 값에 실제 초를 표시하는게 맞습니다^^
년도와 월을 더 할 수도 있습니다.
{getDateTime(yyyy)}+{getDateTime(MM)}
날짜 시간을 계산하려면 아래와 같이 처리합니다.
// 변수 값 2022-02-28
// 오늘 2022-02-25
{getVar(a, DateTime)}-{getDateTime}
// 결과 값
// 0000-00-3 14:3:55.185
포멧을 설정할 수 있고 연산은 빼기, 더하기와 같은 사칙 연산을 사용할 수 있습니다.
{getVar(a, DateTime, dd))}-{getDateTime(dd)}
// 결과 값
// 3
{getVar(a, DateTime, dd))}+{getDateTime(dd)}
// 결과 값
// 53
2. setVariable(setVar)
아래 그림과 같이 변수를 직접 추가할 수 있습니다. 인자는 1개 또는 2개를 사용합니다. 첫번째 인자는 변수명이고, 두번째 인자는 로컬 변수인지 글로벌 변수인지 선택합니다. 두번째 인자가 True면 글로벌 변수로 등록됩니다. 두번째 인자가 없으면 로컬 변수로 자동 등록됩니다.
직접 변수를 추가하는 경우 GUI에서 변수 이름을 사용자에게 알려주지 않습니다. 직접 타이핑으로 입력해야합니다. [ 변수 추가 ] 액션을 사용하면 변수 가져오기와 변수 추가하기에 목록으로 선택할 수 있도록 표시해줍니다. 하지만, 액션이 없이 로직적으로 추가하면 직접 입력해야 합니다.
3. getVariable(getVar)
아래 그림과 같이 변수 a와 b를 추가합니다. 그리고, a 변수의 문자열에 2022를 입력하고, b 변수에는 10을 입력 해줍니다.
아래와 같이 변수의 값을 가져와서 연산할 수 있습니다.
{getVariable(a)}+{getVariable(b)}
물론, 변수 연산과 일반 연산도 같이 수행할 수 있습니다.
{getVariable(a)}+{getVariable(b)}-1000
4. Rectangle(Rect)
변수에 있는 사각형 영역을 가져옵니다. 아래 그림과 같이 a 변수에 사각형 값을 초기 값으로 넣어줍니다.
변수의 사각형 값을 가져옵니다.
{getVariable(a, Rectangle)}
변수의 사각형 값에서 Right 값을 연산하는 방법입니다. 사각형은 Left(X), Top(Y), Right(X+Width), Bottom(Y+Height)과 같이 각 꼭지점의 좌표를 계산할 수 있습니다.
{getVariable(a, Rectangle, X)}+{getVariable(a, Rectangle, Width)}
사각형의 중앙 좌표를 가져오려면 아래와 같이 처리할 수 있습니다.
var myVar1
var myVar2
myVar1 = {getVar(a, Rect, X)} + ({getVar(a, Rect, Width)} / 2)
myVar2 = {getVar(a, Rect, Y)} + ({getVar(a, Rect, Height)} / 2)
myVar1, myVar2
// 사각형 100, 100, 200, 300
// 결과 값
// 200, 250
5. Point
좌표를 계산하거나 변환 처리할 때 사용할 수 있습니다.
{getVariable(a, Point, X)}+{getVariable(a, Point, Y)}
방식은 사각형 연산과 동일합니다.
6. Size
좌표와 사용법은 동일합니다. 크기를 계산하거나 조정할 때 사용할 수 있습니다.
{getVariable(a, Size, X)}+{getVariable(a, Size, Y)}
방식은 좌표(Point) 연산과 동일합니다.
7. Array(Arr)
변수로부터 배열을 가져올 수 있습니다. 테스트를 위해 변수에 1, 2, 3, 4, 5 배열을 추가 했습니다.
배열은 인자가 무조건 3개 필요합니다. 첫번째 인자는 변수명이고, 두번째 인자는 변수 타입입니다. 배열이라면 세번째 인자로 인덱스에 위치한 값을 가져옵니다.
{getVar(a, Arr, 0)}
// 결과 값
// 1
배열의 세번째 인자는 아래와 같습니다.
- 숫자: 배열의 위치 값 (0, 1, 2, 3, ...)
- Sum: 배열의 모든 값의 합
- Avg: 배열의 평균
- First: 배열의 첫번째 값
- Last: 배열의 마지막 값 (배열의 길이가 가변일 경우 마지막 값 확인)
- Count: 배열의 길이입니다. (배열에 포함된 항목의 수)
- All: All은 구분자와 같이 사용됩니다. 예) All^, All#, ...
8. getHandle, getControl, getClass
프로그램의 핸들 값을 가져올 수 있습니다.
핸들은 아래와 같이 아스테리스크(*)와 같이 사용할 수 있습니다. 일부 프로그램은 풀네임을 입력해야 정상 동작하므로 가능하면 풀네임을 사용하세요.
{getHandle(NGMsoftware)}
{getHandle(NGM*)}
{getHandle(*software)}
{getHandle(*sof*)}
매인 핸들을 이용해서 콘트롤의 핸들을 찾을 수 있습니다.
var MyHandle
MyHandle = {getHandle(Cheat Engine 7.2)}
{getControl(MyHandle, Hex)}
매인 핸들을 이용해서 클래스 네임의 핸들을 찾을 수 있습니다.
var MyHandle
MyHandle = {getHandle(Cheat Engine 7.2)}
{getClass(MyHandle, Edit)}
9. getCurrentMainHandle, getCurrentControlHandle, getCurrentHandleName
현재 스크립트의 핸들 정보를 가져올 때 사용하는 내장 함수입니다.. getCurrentMainHandle은 아래 그림과 같이 스크립트의 윈도우의 매인 핸들 값을 반환합니다.. getCurrentControlHandle은 콘트롤 핸들 값입니다.. getCurrentHandleName은 핸들 설정이 되어 있는 프로그램의 상단 타이틀 정보입니다..
{getCurrentMainHandle}
10. getWindowRectangle(getWinRect)
7번의 윈도우 핸들을 이용하면 해당 프로그램(윈도우)의 창 위치를 알 수 있습니다. 변수 이름이 파라메터 값에 포함되면 안됩니다. NGMsoftware에 a라는 값이 있기 때문에 파라메터가 변수로 대체 되기 때문입니다. 따라서, 변수 이름을 myVar로 변경하고 테스트하세요.
var a
a={getHandle(NGM*)}
{getWindowRectangle(a)}
// 결과 값
// X=-8,Y=-8,Width=1928,Height=1048
var myVar
myVar={getHandle(NGMsoftware)}
{getWindowRectangle(myVar, X)}
// 결과 값
// 847
11 Math
부동 소수점을 올림, 반올림, 내림, 버림등등... 처리할 때 사용합니다.
{Math(777.4545, Truncate)}
// 결과 값
// 777
반올림은 Round를 사용합니다.
var myVar
myVar = 777.5
{Math(myVar, Round)}
// 결과 값
// 778
Math 함수의 인자는 아래와 같습니다.
- Abs: 절대 값
- Round: 반올림
- Ceiling: 올림
- Truncate: 내림
- Floor: 소수점 버림
변수를 이용할수도 있습니다.
변수 사용 방법과 동일합니다.
{getVar(a, Math, Round)}
// 결과 값
// 778
12. getActiveWindow
현재 활성 상태의 윈도우 핸들을 가져옵니다.
{getActiveWindow}
13. getWindowText
인자로 넘겨준 핸들 값으로 윈도우를 찾고, 해당 윈도우의 캡션(창 제목)을 가져옵니다. 아래와 같이 처리하면 현재 활성창의 창 제목을 알 수 있습니다.
var myVar
myVar = {getActiveWindow}
{getWindowText(myVar)}
14. getResolution
모니터의 해상도 정보를 가져올 수 있습니다.
{getResolution}
// 결과 값 (듀얼 모니터 사용)
// Width=3840, Height=1080
{getResolution(Primary)}
// 결과 값 (주 모니터)
// Width=1920, Height=1080
{getResolution(Index, 1)}
// 결과 값 (두번째 모니터)
// Width=1920, Height=1080
각각 가로, 세로 사이즈도 가져올 수 있습니다.
{getResolution(Width)}
// 결과 값
// 3840
{getResolution(Index, 1, Width)}
// 결과 값
// 1920
15. getPosition
현재 마우스 위치를 알 수 있습니다.
{getPosition} // {getPosition()}
// 결과 값
// X=862,Y=393
{getPosition(X)}
// 결과 값
// 862
{getPosition(Y)}
// 결과 값
// 393
좌표의 X, Y 값을 각각 줄바꿈으로 표시하고 싶으면 \n을 사용합니다.
{getPosition(X)}\n{getPosition(Y)}
// 또는
{getPosition(X)}\n
{getPosition(Y)}
// 또는
{getPosition(X)}
\n{getPosition(Y)}
16. getUserName
사용자 계졍 이름을 가져옵니다.
{getUserName}
17. getComputerName
컴퓨터 이름을 가져옵니다.
{getComputerName}
18. getCapture
윈도우 화면을 캡쳐합니다. 영역을 설정하거나 클립보드에 저장할 수 있습니다.
// 이미지를 저장할 위치가 없으면 클립보드에 저장됩니다.
{getCapture}
// 바탕화면에 이미지를 저장합니다.
{getCapture(Desktop)}
// 사용자가 설정한 위치에 이미지를 저장합니다.
{getCapture(E:\\ngmsoftware.png)}
// 캡쳐 영역을 설정할 수 있습니다.
{getCapture(Desktop, 10, 10, 100, 100)}
19. getPixel
좌표의 픽셀 정보를 가져옵니다. 픽셀 정보는 아래와 같습니다.
{getPixel(300, 300, rgb)}
{getPixel(300, 300, argb)}
{getPixel(300, 300, name)}
{getPixel(300, 300, brightness)}
{getPixel(300, 300, hue)}
{getPixel(300, 300, saturation)}
{getPixel(300, 300, r)}
{getPixel(300, 300, g)}
{getPixel(300, 300, b)}
{getPixel(300, 300, a)}
20. Internal Variable
내부에 변수를 선언하고, 계산된 값을 임시로 저장할 수 있습니다. 그리고, 이 값을 재사용할 수 있습니다.
※ 변수 선언과 값 대입은 한줄에 하나만 작성할 수 있습니다.
변수에 함수를 사용할 수 있습니다.
var a
var b
a = {getDateTime(yyyy)}
b = 2
a+b
연산에 일반 연산을 사용할 수 있습니다.
var a
var b
a = {getDateTime(yyyy)}
b = 2
a+b+1000
변수 값을 가져와서 연산할 수 있습니다.
X 좌표 값이 10이고, b 가 10 그리고, 1000을 더해주기 때문에 결과 값은 1020이 됩니다.
var a
var b
a = {getVar(a, Rect, X)}
b = 10
a+b+1000
일반 문자열 연결은 아래와 같이 사용합니다.
var a
var b
a=안녕
b=하세요
ab
// 결과 값
안녕하세요
문자열 연결시 콤마 또는 띄어쓰기로 구분하려면 아래와 같이 사용합니다.
var a
var b
a=안녕
b=하세요
a,b
// 결과 값
// 안녕,하세요
var a
var b
a=안녕
b=하세요
a b
// 결과 값
// 안녕 하세요
var a
var b
a=안녕
b=하세요
a, b
// 결과 값
// 안녕, 하세요
21. System Metrics
윈도우의 시스템 메트릭 또는 시스템 구성 설정을 검색합니다. SystemMetrics 함수의 인자는 아래 내용을 참고하세요.
SM_CXSCREEN: 기본 디스플레이 모니터의 화면 너비(픽셀 단위)입니다.
{SystemMetrics(SM_CXSCREEN)}
Value |
Meaning |
---|
- SM_ARRANGE
- 56
|
시스템이 최소화된 창을 배열하는 방법을 지정하는 플래그입니다. 자세한 내용은 이 항목의 설명 섹션을 참조하십시오. |
- SM_CLEANBOOT
- 67
|
시스템 시작 방법을 지정하는 값:
- 0 Normal boot
- 1 Fail-safe boot
- 2 Fail-safe with network boot
안전 부팅(SafeBoot, 안전 모드 또는 클린 부팅이라고도 함)은 사용자 시작 파일을 우회합니다. |
- SM_CMONITORS
- 80
|
데스크톱의 디스플레이 모니터 수입니다. 자세한 내용은 이 항목의 설명 섹션을 참조하세요. |
- SM_CMOUSEBUTTONS
- 43
|
마우스의 버튼 수 또는 마우스가 설치되지 않은 경우 0입니다. |
- SM_CONVERTIBLESLATEMODE
- 0x2003
|
랩탑 또는 슬레이트 모드의 상태를 반영합니다. 슬레이트 모드는 0이고 그렇지 않으면 0이 아닙니다. 이 시스템 측정항목이 변경되면 시스템은 LPARAM의 'ConvertibleSlateMode'와 함께 WM_SETTINGCHANGE를 통해 브로드캐스트 메시지를 보냅니다. 이 시스템 메트릭은 데스크톱 PC에는 적용되지 않습니다. 이 경우 GetAutoRotationState를 사용하세요. |
- SM_CXBORDER
- 5
|
창 테두리의 너비(픽셀 단위)입니다. 이는 3D 모양의 창에 대한 SM_CXEDGE 값과 동일합니다. |
- SM_CXCURSOR
- 13
|
커서의 너비(픽셀)입니다. 시스템은 다른 크기의 커서를 만들 수 없습니다. |
- SM_CXDLGFRAME
- 7
|
이 값은 SM_CXFIXEDFRAME과 동일합니다. |
- SM_CXDOUBLECLK
- 36
|
두 번 클릭 순서에서 첫 번째 클릭 위치 주변의 사각형 너비(픽셀)입니다. 두 번째 클릭은 시스템이 두 번 클릭을 더블 클릭으로 간주하도록 SM_CXDOUBLECLK 및 SM_CYDOUBLECLK로 정의된 사각형 내에서 발생해야 합니다. 두 번의 클릭도 지정된 시간 내에 발생해야 합니다.
더블 클릭 사각형의 너비를 설정하려면 SPI_SETDOUBLECLKWIDTH로 SystemParametersInfo를 호출하세요. |
- SM_CXDRAG
- 68
|
끌기 작업이 시작되기 전에 마우스 포인터가 이동할 수 있는 마우스 다운 지점 양쪽의 픽셀 수입니다. 이를 통해 사용자는 의도치 않게 끌기 작업을 시작하지 않고도 쉽게 마우스 버튼을 클릭하고 놓을 수 있습니다. 이 값이 음수이면 마우스 다운 지점의 왼쪽에서 빼서 오른쪽에 더합니다. |
- SM_CXEDGE
- 45
|
3차원 테두리의 너비(픽셀 단위)입니다. 이 메트릭은 SM_CXBORDER의 3D 대응물입니다. |
- SM_CXFIXEDFRAME
- 7
|
캡션이 있지만 크기를 조정할 수 없는 창 주변의 프레임 두께(픽셀 단위)입니다. SM_CXFIXEDFRAME은 가로 테두리의 높이이고 SM_CYFIXEDFRAME은 세로 테두리의 너비입니다.
이 값은 SM_CXDLGRAME과 동일합니다. |
- SM_CXFOCUSBORDER
- 83
|
DrawFocusRect가 그리는 포커스 사각형의 왼쪽 및 오른쪽 가장자리 너비입니다. 이 값은 픽셀 단위입니다.
Windows 2000: 이 값은 지원되지 않습니다. |
- SM_CXFRAME
- 32
|
이 값은 SM_CXSIZEFRAME과 동일합니다. |
- SM_CXFULLSCREEN
- 16
|
기본 디스플레이 모니터의 전체 화면 창에 대한 클라이언트 영역의 너비(픽셀)입니다. 시스템 작업 표시줄이나 애플리케이션 데스크톱 도구 모음에 의해 가려지지 않은 화면 부분의 좌표를 얻으려면 SPI_GETWORKAREA 값과 함께 SystemParametersInfo 함수를 호출하세요. |
- SM_CXHSCROLL
- 21
|
가로 스크롤 막대의 화살표 비트맵 너비(픽셀)입니다. |
- SM_CXHTHUMB
- 10
|
가로 스크롤 막대의 썸 상자 너비(픽셀)입니다. |
- SM_CXICON
- 11
|
아이콘의 기본 너비(픽셀)입니다. LoadIcon 함수는 SM_CXICON 및 SM_CYICON이 지정하는 크기의 아이콘만 로드할 수 있습니다. |
- SM_CXICONSPACING
- 38
|
큰 아이콘 보기의 항목에 대한 그리드 셀의 너비(픽셀)입니다. 각 항목은 배열될 때 SM_CYICONSPACING x SM_CXICONSPACING 크기의 직사각형에 맞습니다. 이 값은 항상 SM_CXICON보다 크거나 같습니다. |
- SM_CXMAXIMIZED
- 61
|
기본 디스플레이 모니터에서 최대화된 최상위 창의 기본 너비(픽셀)입니다. |
- SM_CXMAXTRACK
- 59
|
캡션 및 크기 조정 테두리가 있는 창의 기본 최대 너비(픽셀)입니다. 이 메트릭은 전체 데스크톱을 나타냅니다. 사용자는 이 치수보다 큰 크기로 창 프레임을 끌 수 없습니다. 창은 WM_GETMINMAXINFO 메시지를 처리하여 이 값을 재정의할 수 있습니다. |
- SM_CXMENUCHECK
- 71
|
기본 메뉴 체크 표시 비트맵의 너비(픽셀)입니다. |
- SM_CXMENUSIZE
- 54
|
다중 문서 인터페이스에서 사용되는 자식 창 닫기 버튼과 같은 메뉴 모음 버튼의 너비(픽셀)입니다. |
- SM_CXMIN
- 28
|
창의 최소 너비(픽셀)입니다. |
- SM_CXMINIMIZED
- 57
|
최소화된 창의 너비(픽셀)입니다. |
- SM_CXMINSPACING
- 47
|
최소화된 창의 그리드 셀 너비(픽셀)입니다. 최소화된 각 창은 배열될 때 이 크기의 직사각형에 맞습니다. 이 값은 항상 SM_CXMINIMIZED보다 크거나 같습니다. |
- SM_CXMINTRACK
- 34
|
창의 최소 추적 너비(픽셀)입니다. 사용자는 이 치수보다 작은 크기로 창 프레임을 끌 수 없습니다. 창은 WM_GETMINMAXINFO 메시지를 처리하여 이 값을 재정의할 수 있습니다. |
- SM_CXPADDEDBORDER
- 92
|
캡션이 있는 창의 테두리 패딩 양(픽셀)입니다.
Windows XP/2000: 이 값은 지원되지 않습니다. |
- SM_CXSCREEN
- 0
|
기본 디스플레이 모니터의 화면 너비(픽셀 단위)입니다. 이는 GetDeviceCaps( hdcPrimaryMonitor, HORZRES)와 같이 GetDeviceCaps를 호출하여 얻은 것과 동일한 값입니다. |
- SM_CXSIZE
- 30
|
창 캡션 또는 제목 표시줄의 버튼 너비(픽셀)입니다. |
- SM_CXSIZEFRAME
- 32
|
크기를 조정할 수 있는 창 주변의 크기 조정 테두리 두께(픽셀 단위)입니다. SM_CXSIZEFRAME은 가로 테두리의 너비이고 SM_CYSIZEFRAME은 세로 테두리의 높이입니다.
이 값은 SM_CXFRAME과 동일합니다. |
- SM_CXSMICON
- 49
|
작은 아이콘의 권장 너비(픽셀)입니다. 작은 아이콘은 일반적으로 창 캡션과 작은 아이콘 보기에 나타납니다. |
- SM_CXSMSIZE
- 52
|
작은 캡션 버튼의 너비(픽셀)입니다. |
- SM_CXVIRTUALSCREEN
- 78
|
가상 화면의 너비(픽셀)입니다. 가상 화면은 모든 디스플레이 모니터의 경계 사각형입니다. SM_XVIRTUALSCREEN 지표는 가상 화면의 왼쪽 좌표입니다. |
- SM_CXVSCROLL
- 2
|
세로 스크롤 막대의 너비(픽셀)입니다. |
- SM_CYBORDER
- 6
|
창 테두리의 높이(픽셀 단위)입니다. 이는 3D 모양의 창에 대한 SM_CYEDGE 값과 동일합니다. |
- SM_CYCAPTION
- 4
|
캡션 영역의 높이(픽셀)입니다. |
- SM_CYCURSOR
- 14
|
커서의 높이(픽셀 단위)입니다. 시스템은 다른 크기의 커서를 만들 수 없습니다. |
- SM_CYDLGFRAME
- 8
|
이 값은 SM_CYFIXEDFRAME과 동일합니다. |
- SM_CYDOUBLECLK
- 37
|
두 번 클릭 순서에서 첫 번째 클릭 위치 주변의 사각형 높이(픽셀)입니다. 두 번째 클릭은 SM_CXDOUBLECLK 및 SM_CYDOUBLECLK에 의해 정의된 사각형 내에서 발생해야 시스템이 두 번의 클릭을 두 번 클릭으로 간주합니다. 두 번의 클릭도 지정된 시간 내에 발생해야 합니다.
더블 클릭 사각형의 높이를 설정하려면 SPI_SETDOUBLECLKHEIGHT로 SystemParametersInfo를 호출하세요. |
- SM_CYDRAG
- 69
|
끌기 작업이 시작되기 전에 마우스 포인터가 이동할 수 있는 마우스 다운 지점 위와 아래의 픽셀 수입니다. 이를 통해 사용자는 의도치 않게 끌기 작업을 시작하지 않고도 쉽게 마우스 버튼을 클릭하고 놓을 수 있습니다. 이 값이 음수이면 마우스 다운 지점 위에서 빼고 그 아래에서 더합니다. |
- SM_CYEDGE
- 46
|
3D 테두리의 높이(픽셀)입니다. 이것은 SM_CYBORDER의 3D 대응물입니다. |
- SM_CYFIXEDFRAME
- 8
|
캡션이 있지만 크기를 조정할 수 없는 창 주변의 프레임 두께(픽셀 단위)입니다. SM_CXFIXEDFRAME은 가로 테두리의 높이이고 SM_CYFIXEDFRAME은 세로 테두리의 너비입니다.
이 값은 SM_CYDLGRAME과 동일합니다. |
- SM_CYFOCUSBORDER
- 84
|
DrawFocusRect로 그린 포커스 사각형의 위쪽 및 아래쪽 가장자리 높이입니다. 이 값은 픽셀 단위입니다.
Windows 2000: 이 값은 지원되지 않습니다. |
- SM_CYFRAME
- 33
|
이 값은 SM_CYSIZEFRAME과 동일합니다. |
- SM_CYFULLSCREEN
- 17
|
기본 디스플레이 모니터의 전체 화면 창에 대한 클라이언트 영역의 높이(픽셀 단위)입니다. 시스템 작업 표시줄이나 애플리케이션 데스크톱 도구 모음에 의해 가려지지 않은 화면 부분의 좌표를 얻으려면 SPI_GETWORKAREA 값과 함께 SystemParametersInfo 함수를 호출하세요. |
- SM_CYHSCROLL
- 3
|
가로 스크롤 막대의 높이(픽셀)입니다. |
- SM_CYICON
- 12
|
아이콘의 기본 높이(픽셀)입니다. LoadIcon 함수는 크기가 SM_CXICON 및 SM_CYICON인 아이콘만 로드할 수 있습니다. |
- SM_CYICONSPACING
- 39
|
큰 아이콘 보기의 항목에 대한 그리드 셀의 높이(픽셀)입니다. 각 항목은 배열될 때 SM_CYICONSPACING x SM_CXICONSPACING 크기의 직사각형에 맞습니다. 이 값은 항상 SM_CYICON보다 크거나 같습니다. |
- SM_CYKANJIWINDOW
- 18
|
시스템의 2바이트 문자 집합 버전의 경우 화면 하단에 있는 Kanji 창의 높이(픽셀 단위)입니다. |
- SM_CYMAXIMIZED
- 62
|
기본 디스플레이 모니터에서 최대화된 최상위 창의 기본 높이(픽셀)입니다. |
- SM_CYMAXTRACK
- 60
|
캡션 및 크기 조정 테두리가 있는 창의 기본 최대 높이(픽셀)입니다. 이 메트릭은 전체 데스크톱을 나타냅니다. 사용자는 이 치수보다 큰 크기로 창 프레임을 끌 수 없습니다. 창은 WM_GETMINMAXINFO 메시지를 처리하여 이 값을 재정의할 수 있습니다. |
- SM_CYMENU
- 15
|
한 줄 메뉴 모음의 높이(픽셀)입니다. |
- SM_CYMENUCHECK
- 72
|
기본 메뉴 체크 표시 비트맵의 높이(픽셀)입니다. |
- SM_CYMENUSIZE
- 55
|
다중 문서 인터페이스에서 사용되는 자식 창 닫기 버튼과 같은 메뉴 모음 버튼의 높이(픽셀)입니다. |
- SM_CYMIN
- 29
|
창의 최소 높이(픽셀 단위)입니다. |
- SM_CYMINIMIZED
- 58
|
최소화된 창의 높이(픽셀)입니다. |
- SM_CYMINSPACING
- 48
|
최소화된 창의 그리드 셀 높이(픽셀 단위)입니다. 최소화된 각 창은 배열될 때 이 크기의 직사각형에 맞습니다. 이 값은 항상 SM_CYMINIMIZED보다 크거나 같습니다. |
- SM_CYMINTRACK
- 35
|
창의 최소 추적 높이(픽셀)입니다. 사용자는 이 치수보다 작은 크기로 창 프레임을 끌 수 없습니다. 창은 WM_GETMINMAXINFO 메시지를 처리하여 이 값을 재정의할 수 있습니다. |
- SM_CYSCREEN
- 1
|
기본 디스플레이 모니터의 화면 높이(픽셀 단위)입니다. 이는 GetDeviceCaps( hdcPrimaryMonitor, VERTRES)와 같이 GetDeviceCaps를 호출하여 얻은 것과 동일한 값입니다. |
- SM_CYSIZE
- 31
|
창 캡션 또는 제목 표시줄의 버튼 높이(픽셀 단위)입니다. |
- SM_CYSIZEFRAME
- 33
|
크기를 조정할 수 있는 창 주변의 크기 조정 테두리 두께(픽셀 단위)입니다. SM_CXSIZEFRAME은 가로 테두리의 너비이고 SM_CYSIZEFRAME은 세로 테두리의 높이입니다.
이 값은 SM_CYFRAME과 동일합니다. |
- SM_CYSMCAPTION
- 51
|
작은 캡션의 높이(픽셀)입니다. |
- SM_CYSMICON
- 50
|
작은 아이콘의 권장 높이(픽셀)입니다. 작은 아이콘은 일반적으로 창 캡션과 작은 아이콘 보기에 나타납니다. |
- SM_CYSMSIZE
- 53
|
작은 캡션 버튼의 높이(픽셀)입니다. |
- SM_CYVIRTUALSCREEN
- 79
|
가상 화면의 높이(픽셀 단위)입니다. 가상 화면은 모든 디스플레이 모니터의 경계 사각형입니다. SM_YVIRTUALSCREEN 지표는 가상 화면 상단의 좌표입니다. |
- SM_CYVSCROLL
- 20
|
세로 스크롤 막대의 화살표 비트맵 높이(픽셀)입니다. |
- SM_CYVTHUMB
- 9
|
세로 스크롤 막대에서 썸 상자의 높이(픽셀)입니다. |
- SM_DBCSENABLED
- 42
|
User32.dll이 DBCS를 지원하는 경우 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_DEBUG
- 22
|
User.exe의 디버그 버전이 설치된 경우 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_DIGITIZER
- 94
|
현재 운영 체제가 Windows 7 또는 Windows Server 2008 R2이고 Tablet PC 입력 서비스가 시작된 경우 0이 아닙니다. 그렇지 않으면 0. 반환 값은 장치에서 지원하는 디지타이저 입력 유형을 지정하는 비트 마스크입니다. 자세한 내용은 비고를 참조하세요.
Windows Server 2008, Windows Vista 및 Windows XP/2000: 이 값은 지원되지 않습니다. |
- SM_IMMENABLED
- 82
|
입력기 관리자/입력기 기능이 활성화된 경우 0이 아닙니다. 그렇지 않으면 0입니다.
SM_IMMENABLED는 시스템이 유니코드 응용 프로그램에서 유니코드 기반 IME를 사용할 준비가 되었는지 여부를 나타냅니다. 언어 종속 IME가 작동하는지 확인하려면 SM_DBCSENABLED 및 시스템 ANSI 코드 페이지를 확인하십시오. 그렇지 않으면 ANSI에서 유니코드로의 변환이 올바르게 수행되지 않거나 글꼴 또는 레지스트리 설정과 같은 일부 구성 요소가 표시되지 않을 수 있습니다. |
- SM_MAXIMUMTOUCHES
- 95
|
시스템에 디지타이저가 있는 경우 0이 아닙니다. 그렇지 않으면 0입니다.
SM_MAXIMUMTOUCHES는 시스템의 모든 디지타이저에서 지원하는 최대 접점 수의 집계 최대값을 반환합니다. 시스템에 단일 터치 디지타이저만 있는 경우 반환 값은 1입니다. 시스템에 멀티 터치 디지타이저가 있는 경우 반환 값은 하드웨어가 제공할 수 있는 동시 접점 수입니다.
Windows Server 2008, Windows Vista 및 Windows XP/2000: 이 값은 지원되지 않습니다.
|
- SM_MEDIACENTER
- 87
|
현재 운영 체제가 Windows XP, Media Center Edition인 경우 0이 아닙니다. 그렇지 않은 경우 0입니다. |
- SM_MENUDROPALIGNMENT
- 40
|
드롭다운 메뉴가 해당 메뉴 모음 항목과 오른쪽 정렬된 경우 0이 아닙니다. 메뉴가 왼쪽 정렬된 경우 0입니다. |
- SM_MIDEASTENABLED
- 74
|
시스템이 히브리어 및 아랍어에 대해 활성화된 경우 0이 아닙니다. 그렇지 않은 경우 0입니다. |
- SM_MOUSEPRESENT
- 19
|
마우스가 설치된 경우 0이 아닙니다. 그렇지 않으면 0. 이 값은 가상 마우스 지원과 일부 시스템이 마우스 대신 포트 존재를 감지하기 때문에 거의 0이 아닙니다. |
- SM_MOUSEHORIZONTALWHEELPRESENT
- 91
|
수평 스크롤 휠이 있는 마우스가 설치된 경우 0이 아닙니다. 그렇지 않으면 0. |
- SM_MOUSEWHEELPRESENT
- 75
|
세로 스크롤 휠이 있는 마우스가 설치된 경우 0이 아닙니다. 그렇지 않으면 0. |
- SM_NETWORK
- 63
|
네트워크가 있는 경우 최하위 비트가 설정됩니다. 그렇지 않으면 지워집니다. 다른 비트는 나중에 사용하기 위해 예약되어 있습니다. |
- SM_PENWINDOWS
- 41
|
펜 컴퓨팅 확장용 Microsoft Windows가 설치된 경우 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_REMOTECONTROL
- 0x2001
|
이 시스템 메트릭은 터미널 서비스 환경에서 현재 터미널 서버 세션이 원격으로 제어되고 있는지 확인하는 데 사용됩니다. 현재 세션이 원격으로 제어되는 경우 값은 0이 아닙니다. 그렇지 않으면 0입니다.
터미널 서비스 관리자(tsadmin.msc) 및 shadow.exe와 같은 터미널 서비스 관리 도구를 사용하여 원격 세션을 제어할 수 있습니다. 세션이 원격으로 제어되는 경우 다른 사용자가 해당 세션의 내용을 보고 잠재적으로 상호 작용할 수 있습니다. |
- SM_REMOTESESSION
- 0x1000
|
이 시스템 메트릭은 터미널 서비스 환경에서 사용됩니다. 호출 프로세스가 터미널 서비스 클라이언트 세션과 연결된 경우 반환 값은 0이 아닙니다. 호출 프로세스가 터미널 서비스 콘솔 세션과 연결된 경우 반환 값은 0입니다. Windows Server 2003 및 Windows XP: 콘솔 세션이 반드시 물리적 콘솔일 필요는 없습니다. 자세한 내용은 WTSGetActiveConsoleSessionId를 참조하세요. |
- SM_SAMEDISPLAYFORMAT
- 81
|
모든 디스플레이 모니터의 색상 형식이 동일한 경우 0이 아닙니다. 그렇지 않으면 0입니다. 두 디스플레이의 비트 심도는 같지만 색상 형식은 다를 수 있습니다. 예를 들어 빨간색, 녹색 및 파란색 픽셀은 서로 다른 수의 비트로 인코딩되거나 해당 비트가 픽셀 색상 값의 서로 다른 위치에 있을 수 있습니다. |
- SM_SECURE
- 44
|
이 시스템 메트릭은 무시해야 합니다. 항상 0을 반환합니다. |
- SM_SERVERR2
- 89
|
시스템이 Windows Server 2003 R2인 경우 빌드 번호입니다. 그렇지 않으면 0입니다. |
- SM_SHOWSOUNDS
- 70
|
정보를 들을 수 있는 형식으로만 제공하는 상황에서 정보를 시각적으로 제공하기 위해 사용자가 응용 프로그램을 요구하는 경우 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_SHUTTINGDOWN
- 0x2000
|
현재 세션이 종료되는 경우 0이 아닙니다. 그렇지 않으면 0입니다.
Windows 2000: 이 값은 지원되지 않습니다. |
- SM_SLOWMACHINE
- 73
|
컴퓨터에 저사양(느린) 프로세서가 있는 경우 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_STARTER
- 88
|
현재 운영 체제가 Windows 7 Starter Edition, Windows Vista Starter 또는 Windows XP Starter Edition인 경우 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_SWAPBUTTON
- 23
|
왼쪽 마우스 버튼과 오른쪽 마우스 버튼의 의미가 바뀌면 0이 아닙니다. 그렇지 않으면 0입니다. |
- SM_SYSTEMDOCKED
- 0x2004
|
도킹 모드의 상태를 반영합니다. 도킹 해제 모드는 0이고 그렇지 않으면 0이 아닙니다. 이 시스템 측정항목이 변경되면 시스템은 LPARAM의 'SystemDockMode'와 함께 WM_SETTINGCHANGE를 통해 브로드캐스트 메시지를 보냅니다. |
- SM_TABLETPC
- 86
|
현재 운영 체제가 Windows XP Tablet PC 버전이거나 현재 운영 체제가 Windows Vista 또는 Windows 7이고 Tablet PC 입력 서비스가 시작된 경우 0이 아닙니다. 그렇지 않으면 0. SM_DIGITIZER 설정은 Windows 7 또는 Windows Server 2008 R2를 실행하는 기기에서 지원하는 디지타이저 입력 유형을 나타냅니다. 자세한 내용은 비고를 참조하세요. |
- SM_XVIRTUALSCREEN
- 76
|
가상 화면의 왼쪽 좌표입니다. 가상 화면은 모든 디스플레이 모니터의 경계 사각형입니다. SM_CXVIRTUALSCREEN 메트릭은 가상 화면의 너비입니다. |
- SM_YVIRTUALSCREEN
- 77
|
가상 화면 상단의 좌표입니다. 가상 화면은 모든 디스플레이 모니터의 경계 사각형입니다. SM_CYVIRTUALSCREEN 메트릭은 가상 화면의 높이입니다. |
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~