61 - [오토핫키] Progress와 GUI Progress
61 - [오토핫키] Progress와 GUI Progress
|
GUI ActiveX, WinHttp, DOM 중에 DOM의 단점이 바로 속도 였죠? 이럴때는 Progress를 사용하여 기다리는 지루함을 줄여주면 좋답니다. Progress는 쉽게 말해 "로딩바"라고 생각하면 됩니다. 마찬가지로 GUI Progress가 있는데 조금더 자유롭게 꾸며줄 수 있어서 저는 GUI Progress를 더 좋아해요. |
|
|
|
|
문법
|
Progress, Off Progress, ProgressParam1 [, SubText, MainText, WinTitle, FontName] |
설명
ProgressParam1Off를 기입하면 창이 닫히며, Show를 기입하면 숨어있는 창이 보여집니다. 만약 창이 없다면 새로운 프로그레스 창이 생성됩니다. 옵션을 조합하여 사용합니다. A : 창이 항상 위에 있지 않습니다. B : Borderless, 창의 테두리와 제목 바가 없습니다. M : 사용자가 창을 이동할 수 있게됩니다. Pn : 기본값은 0이며 프로그레스 창의 값을 관리합니다. Rx-y : 프로그레스 범위를 지정합니다. 기본값은 R0-100 입니다. T : 태스크 바에 버튼이 추가됩니다. Hn : n에 창의 높이를 지정합니다. Wn : n에 창의 너비를 지정합니다. Xn : n에 창의 x좌표를 지정합니다. Yn : n에 창의 y좌표를 지정합니다. Hide : 창을 감춥니다. |
SubText바 아래 표시할 텍스트. |
MainText바 위에 표시할 텍스트. |
WinTitle창의 제목. |
FontNameMainText와 SubText에 사용할 글꼴. |
|
Gui, Add, Progress, Options |
설명
Add콘트롤을 GUI에 추가합니다. |
Progress얼마나 진도가 나갔는가를 보여주는 컬러 바. |
Options위치, 크기, 라벨 등을 설정 W : 픽셀 단위 너비 H : 픽셀 단위 높이 X : X축 위치 Y : Y축 위치 Cn : 바의 컬러 n에 10진 혹은 16진 컬러값을 입력 합니다. BackgroundN : 바의 배경색 N에 10진 혹은 16진 컬러값을 입력 합니다. Range : 범위. 기본값은 Range0-100 -Smooth : 부드럽게 연속된 바가 아닌 Progress와 같은 테마 프로그레스를 보여줍니다. Vertical : 수직으로 사용합니다. |
예제
ProgressProgress, P100 B ;Borderless 프로그레스를 100까지 이동시킵니다. LimitTime=20180101 WB := ComObjCreate( "InternetExplorer.Application" ) WB.navigate( "http://time.navyism.com/" ) While WB.readyState <> 4 || WB.document.readyState != "complete" || WB.busy Sleep, 100 Today := WB.document.getElementById( "time_area" ).innerText Today := SubStr(RegExReplace(Today, "[^\d]"), 1, 8) Progress, Off ;프로그레스창을 닫습니다. If Today > %LimitTime% { MsgBox, 16, 기간만료, 사용기간이 만료되었습니다. ExitApp }Else{ EnvSub, LimitTime, %Today%, days MsgBox, 64, 사용가능기간, 사용기간 %LimitTime%일 남았습니다. } |
GUI ProgressGui, -Caption +AlwaysOnTop +LastFound Gui, Add, Text, , L o a d i n g . . . Gui, Add, Progress, cRed vMyProgress ;GUI Progress를 추가합니다. WinSet, TransColor, F0F0F0 ;배경색을 투명하게 해줍니다. Gui, Show
WB := ComObjCreate( "InternetExplorer.Application" ) WB.navigate( "https://nid.naver.com/nidlogin.login" ) GuiControl, , MyProgress, +30 ;GUI Progress바를 30 이동시킵니다. While WB.readyState <> 4 || WB.document.readyState != "complete" || WB.busy Sleep, 100 GuiControl, , MyProgress, +40 ;GUI Progress바를 40 이동시킵니다. WB.document.getElementById( "id" ).value := "아이디" WB.document.getElementById( "pw" ).value := "비밀번호" WB.document.getElementById( "frmNIDLogin" ).submit() GuiControl, , MyProgress, +30 ;GUI Progress바를 30 이동시킵니다. WB.Visible := true
Gui, Hide ;GUI를 숨깁니다. |
|
Progress는 사용하기 간편하지만 모양을 더이상 꾸밀수가 없습니다. 반면 GUI Progress는 다양한 설정이 가능하지만 부드럽게 하기 위해서는 스크립트 중간중간 GuiControl을 통해서 Progress바를 강제로 입력해줘야 하는 불편함이 있습니다. |