35 - [오토핫키] GuiControl

    앞서 살짝 언급 했지만 GuiControl은 GUI의 내용을 제어하는 명령어 입니다. 각 명령어마다 사용 방법에 차이가 있으니 주의 해야합니다.

     

     

    문법

    GuiControl, Sub-Command, ControlID [, Param3]

     

    설명

    Sub-Command

    ControlID를 제어하는 명령. 아래 리스트 참조.

    ControlID

    원하는 콘트롤의 변수 이름을 ControlID로 지정합니다. 또한 ClassNN으로 지정 할 수도 있습니다.

    Param3

    일반적으로는 생략하지만 Sub-Command의 종류에 따라 사용 하기도 합니다.

     

     

    예제

    예제1)

    Gui, Add, Text, w100 vT, ID를 입력하세요

    Gui, Add, Edit, w100 vMyEdit

    Gui, Add, Button, gBtn default, Login

    Gui, Show

    Return

     

    Btn:

    Gui, Submit, Nohide

    If (MyEdit="옹봉이" and IDCheck<>"OK")

    {

      GuiControl, , T, PW를 입력하세요

      GuiControl, +password, MyEdit

      IDCheck=OK

      MsgBox, ID확인 되었습니다.

      Send, ^a

    }

    Else

    {

      If (IDCheck="OK" and MyEdit="secretgd")

      {

        GuiControl, , T, 로그인 완료

        MsgBox, PW확인 되었습니다.

      }

      Else

        MsgBox, 잘못 입력하였습니다.

    }

    Return

    예제2)

    Gui, Font, s20 Verdana
    Gui, Add, Text, x10 w390 vMyText
    Gui, Show
    Loop{
      If vX>=410  ;화면 밖으로 나가면
        vX=-200  ;왼쪽에서 다시 나타남
      vX+=7  ;7픽셀씩 이동
      GuiControl, Move, MyText, x%vX%
      GuiControl, , MyText

        , %A_Hour%시 %A_Min%분 %A_Sec%초
      Sleep, 100
    }
    return

     

     

    * 저는 포스팅의 레이아웃을 통일하기 위해 GuiControl을 두줄로 나눠 썼지만 한줄로 작성하기 바랍니다.

     

    최근 Google의 로그인 창을 본적 있으신가요? Google은 아이디를 입력하고 다음으로 넘긴 후 패스워드를 입력하는 방식을 취하고 있죠? 예제1은 1개의 Edit으로 아이디를 확인 한 후 패스워스를 확인합니다. 이 때 GuiControl을 활용합니다. password 옵션을 추가 하여 보안을 유지할 수 있어요.

    예제2는 앞서 다룬 시계에 전광판 기능을 추가 하였습니다. GuiControl, Move로 x축으로 7픽셀씩 이동하다가 화면 밖으로 나가면 반대편에서 다시 나타나게 되어 있어요.

     

    Sub-Command

    (Blank)

    아래 명령들은 Sub-Command를 비워두고 Param3를 통해 새로운 내용을 입력 할 수 있습니다.

    Picture : Param3에 새로운 이미지 파일의 이름을 지정

    Text/Button/GroupBox/StatusBar : Param3에 새 텍스트를 지정

    Edit : Param3에 Edit안에 들어갈 새 텍스트를 지정

    Hotkey : Param3를 생략하면 핫키를 새로 등록 하도록 비울 수 있습니다.

    Checkbox : Param3가 0이면 체크 해제, 1이면 체크를 합니다.

    Radio : Checkbox와 동일합니다.

    DateTime/MonthCal : Param3에 YYYYMMDDHH24MISS 형식의 날짜-시간을 지정합니다.

    UpDown/Slider/Progress : Param3에 새 위치를 지정합니다. +문자로 오프셋 할 수 있습니다. 예) +10 / +-10

    Tab/DropDownList/ComboBox/ListBox : Param3로 리스트를 교체하거나, 추가, 제거 할 수 있습니다.

    GuiControl, Text

    위 (Blank)와 동일하게 사용되지만 아래 명령어들은 예외입니다.

    Checkbox/Radio : Param3에 새 텍스트를 지정

    DateTime : Param3로 새 날짜/시간 형식으로 사용합니다.

    ComboBox : Param3에 ComboBox의 Edit 콘드롤 안에 직접들어갈 텍스트를 지정

    GuiControl, Move

    콘트롤을 이동하거나 크기를 바꿉니다. 예) GuiControl, Move, MyEdit, x10 y10 w100 h100

    GuiControl, MoveDraw

    위 Move와 같습니다. 단 GUI창을 다시 칠하기 때문에 빨리 호출하면 깜빡임이 발생할 수 있습니다.

    GuiControl, Focus

    키보드 초점을 콘트롤에 위치시킵니다.

    GuiControl, Enable / Disable

    콘트롤을 활성화하거나 비활성화 합니다.

    GuiControl, Hide / Show

    콘트롤을 보여주거나 감춥니다.

    GuiControl, Choose, ControlID, N

    ListBox, DropDownList, ComboBox, Tab 콘트롤 안에 N번째가 선택 되도록 합니다.

    GuiControl, ChooseString, ControlID, String

    ListBox, DropDownList, ComboBox, Tab 콘트롤 이름에 해당하는 부분이 선택 되도록 합니다.

    GuiControl, Font

    콘트롤의 글꼴이나 모양, 크기 등을 변경합니다.

    GuiControl, +/-Option1 +/-Option2 ...

    콘트롤 옵션을 추거하거나 제거합니다. 예) GuiControl, +password, MyEdit

     

     

     

     

     

    Posted by 옹봉이