NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • NGM 6
  • 매뉴얼

    NGM 6

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 함수 상자 - 함수 - 윈도우 API. (Functionbox, Function, Windows API)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 함수에 윈도우 API 액션 사용법에 대해 알아보도록 하겠습니다. 우선, 엔지엠 에디터를 실행한 후 새로운 스크립트에 윈도우 API 액션을 추가하세요. 액션보다 직접 코딩으로 계산할 때 유용하게 사용할 수 있습니다. 각각의 기능 및 함수 목록은 아래 내용을 참고하세요.

    [ 엔지엠 매크로 직접 변수 도움말 보기 (Direct Variable) ]

    nN3NIXY.png

     

     

    명령은 아래와 같이 간단하게 수식을 계산할 수 있습니다. 명령에 2022+1을 입력하고, 실행하면 하단 아웃풋 및 결과 값에 2023이 출력됩니다.

    m1K0kPb.png

     

     

    1. getDateTime

    getDateTime 함수는 날짜와 시간을 가져옵니다.  결과 값에 현재 날짜와 시간(yyyy-MM-dd HH:mm:ss.fff)이 표시됩니다.

    7Py6xPL.png

     

     

    만약, 현재 시간에 1시간을 더하려면 아래와 같이 처리할 수 있습니다.

    {getDateTime(HH)}+1

    V1RV3qN.png

     

     

    년도를 가져와서 5년을 더하면 아래와 같습니다.

    {getDateTime(yyyy)}+5

     

    날짜 함수의 인자 의미는 아래와 같습니다.

    • yyyy: 년도
    • MM: 월
    • dd: 일
    • HH: 시
    • mm: 분
    • ss: 초
    • fff: 밀리초

     

    년월일만 가져오려면 아래와 같이 처리합니다.

    {getDateTime(yyyy-MM-dd)}

     

    반복하면서 초를 확인하고 싶으면 아래와 같이 할 수 있습니다. 우연히 1초와 실행 시간이 맞아 떨어졌네요. 결과 값에 실제 초를 표시하는게 맞습니다^^

    rvGbi3B.gif

     

     

    년도와 월을 더 할 수도 있습니다.

    {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면 글로벌 변수로 등록됩니다. 두번째 인자가 없으면 로컬 변수로 자동 등록됩니다.

    N5nXhYt.png

     

     

    직접 변수를 추가하는 경우 GUI에서 변수 이름을 사용자에게 알려주지 않습니다. 직접 타이핑으로 입력해야합니다. [ 변수 추가 ] 액션을 사용하면 변수 가져오기변수 추가하기에 목록으로 선택할 수 있도록 표시해줍니다. 하지만, 액션이 없이 로직적으로 추가하면 직접 입력해야 합니다.

    qUDrotF.png

     

     

    3. getVariable(getVar)

    아래 그림과 같이 변수 a와 b를 추가합니다. 그리고, a 변수의 문자열에 2022를 입력하고, b 변수에는 10을 입력 해줍니다.

    swq3fkC.png

     

     

    아래와 같이 변수의 값을 가져와서 연산할 수 있습니다.

    {getVariable(a)}+{getVariable(b)}

     

    물론, 변수 연산과 일반 연산도 같이 수행할 수 있습니다.

    {getVariable(a)}+{getVariable(b)}-1000

    ehdesf8.png

     

     

    4. Rectangle(Rect)

    변수에 있는 사각형 영역을 가져옵니다. 아래 그림과 같이 a 변수에 사각형 값을 초기 값으로 넣어줍니다.

    czIOQpe.png

     

     

    변수의 사각형 값을 가져옵니다.

    {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)}

     

    방식은 사각형 연산과 동일합니다.

    Hcz73l5.png

     

     

    6. Size

    좌표와 사용법은 동일합니다. 크기를 계산하거나 조정할 때 사용할 수 있습니다.

    {getVariable(a, Size, X)}+{getVariable(a, Size, Y)}

     

    방식은 좌표(Point) 연산과 동일합니다.

    3U4pc5Z.png

     

     

    7. Array(Arr)

    변수로부터 배열을 가져올 수 있습니다. 테스트를 위해 변수에 1, 2, 3, 4, 5 배열을 추가 했습니다.

    K4z3rs5.png

     

     

    배열은 인자가 무조건 3개 필요합니다. 첫번째 인자는 변수명이고, 두번째 인자는 변수 타입입니다. 배열이라면 세번째 인자로 인덱스에 위치한 값을 가져옵니다.

    {getVar(a, Arr, 0)}
    
    // 결과 값
    // 1

     

    배열의 세번째 인자는 아래와 같습니다.

    • 숫자: 배열의 위치 값 (0, 1, 2, 3, ...)
    • Sum: 배열의 모든 값의 합
    • Avg: 배열의 평균
    • First: 배열의 첫번째 값
    • Last: 배열의 마지막 값 (배열의 길이가 가변일 경우 마지막 값 확인)
    • Count: 배열의 길이입니다. (배열에 포함된 항목의 수)
    • All: All은 구분자와 같이 사용됩니다. 예) All^, All#, ...

     

    8. getHandle, getControl, getClass

    프로그램의 핸들 값을 가져올 수 있습니다.

    HzS1QhI.png

     

     

    핸들은 아래와 같이 아스테리스크(*)와 같이 사용할 수 있습니다. 일부 프로그램은 풀네임을 입력해야 정상 동작하므로 가능하면 풀네임을 사용하세요.

    {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}

    BZaEaFg.png

     

     

    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: 소수점 버림

     

    변수를 이용할수도 있습니다.

    qdbfMiE.png

     

     

    변수 사용 방법과 동일합니다.

    {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: 변수 선언
    • =: 변수에 값 대입

    ※ 변수 선언과 값 대입은 한줄에 하나만 작성할 수 있습니다.

    vINgMyj.png

     

     

    변수에 함수를 사용할 수 있습니다.

    var a
    var b
    a = {getDateTime(yyyy)}
    b = 2
    a+b

     

    연산에 일반 연산을 사용할 수 있습니다.

    var a
    var b
    a = {getDateTime(yyyy)}
    b = 2
    a+b+1000

     

    변수 값을 가져와서 연산할 수 있습니다.

    KOTKDrS.png

     

     

    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)}

    ePIjpee.png

     

     

    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 메트릭은 가상 화면의 높이입니다.

     

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.