반응형

 

Msgbox 메세지박스 사용법입니다.

Msgbox 명령어는, 하나 이상의 버튼(예/아니요)이 포함된 작은 창에 지정된 텍스트를 표시합니다.

 


 

메세지창은 특정 서브루틴이 시작되고, 끝이나고 중간에도 띄울 수 있으며

특정한 조건을 달성했을때 사용자가 인지할 수 있는 특정한 창 입니다.

 

메세지 창이 뜰때는 진행중인 스크립트가 잠시 중단되며

메세지창의 버튼을 클릭하여 메세지창을 종료해야지 계속진행됩니다.

  

메시지창 예시 이미지

 

 

오토핫키 Help / 설명서

MsgBox  , 텍스트 
MsgBox  , 옵션, 제목, 텍스트, 시간 초과

 

 

매개변수 

텍스트 : 메세지 창에 들어가는 메인 텍스트를 지정할 수 있습니다 이스케이프 시퀀스를 사용하여 특수 문자를 나타낼 수 있습니다. 예를 들어 `n은 현재 줄을 끝내고 새 줄을 시작하는 줄 바꿈 문자를 나타냅니다. 

 

 

옵션 : 생략할 수 있으나, 생략하면 기본 확인 버튼이 디폴드값으로 출력됩니다. 이는 아이콘, 혹은 메세지 창의 상태 
(예/아니오 버튼 / 확인 버튼 / 안내 및 취소 경고 아이콘 등 / 좌측 우측 정렬 등 ) 를 조정할 수있습니다

 

 

제목 : 메세지창의 타이틀을 나타냅니다. 위 이미지 기준 " 안내 " 라는 문구의 위치에 적을 내용입니다. 공백으로 처리할 수있으나,  옵션을 선택하고, 텍스트만 사용할경우 

Msgbox,64,,메인텍스트

 

와 같은형식으로 사용해야 합니다.

 

시간설정 : 생략할 수 있으며, 생략할경우, 사용자가 이벤트 처리 ( 버튼 조작 ) 을 하지 않는 이상 계속 노출 되어 있습니다.강제 표현식을 사용할 수 있습니다 ( ,% null+10 와 같은 형식 )

 

 

 

옵션 변수 값 / 빈 값은 없음을 표함

아이콘 기능 영문표현
  확인(즉, 확인 버튼만 표시됨) 0 이나 생략 OK
  확인/취소 1 2OK/Cancel
  중단/재시도/무시 2 Abort/Retry/Ignore
  예/아니요/취소 3 Yes/No/Cancel
  예 아니오 4 Yes/No
  재시도/취소 5 Retry/Cancel
  취소/다시 시도/계속 6 Cancel/Try Again/Continue

 

아이콘 기능 영문표현
정지/오류 16 stop/error
질문 32 Question
느낌표 48 Exclamation

정보 64 Asterisk (info)

 

 

 

옵션에 따른 사용법

 

확인(즉, 확인 버튼만 표시됨)

Msgbox,안녕하세요
Msgbox,0,안내,안녕하세요
Msgbox,0,,안녕하세요
Msgbox,0,안내,안녕하세요,2

 

 

확인/취소

Msgbox,1,안내,안녕하세요
IfMsgBox OK
	msgbox,확인버튼 눌름
else
	msgbox,취소버튼 눌름

 

 

중단/재시도/무시

Msgbox,2,안내,안녕하세요
IfMsgBox Abort
	msgbox,중단 버튼 눌름
else IfMsgBox Retry
	msgbox,다시시도 버튼 눌름
else ;Ignore
	msgbox,무시 버튼 눌름

 

 

예/아니요/취소

Msgbox,3,안내,안녕하세요
IfMsgBox yes
	msgbox,예 버튼 눌름
else IfMsgBox no
	msgbox,아니오 버튼 눌름
else ;Cancel
	msgbox,취소 버튼 눌름

 

 

예/아니오

Msgbox,4,안내,안녕하세요
IfMsgBox yes
	msgbox,예 버튼 눌름
else ;no
	msgbox,아니오 버튼 눌름

 

 

다시시도(재시도)/취소

Msgbox,5,안내,안녕하세요
IfMsgBox Retry
	msgbox,다시시도 버튼 눌름
else ;Cancel
	msgbox,취소 버튼 눌름

 

 

 

취소/다시 시도/계속

Msgbox,6,안내,안녕하세요
IfMsgBox Cancel
	msgbox,취소 버튼 눌름
else IfMsgBox TryAgain
	msgbox,다시시도 버튼 눌름
else	;Continue
	msgbox,계속 버튼눌름

 

 

 

위와 동일하게 아이콘도 사용하시면 됩니다.

감사합니다

반응형
반응형

 

 

 

오토핫키 tooltip의 이해가 있으시거나

화면에 깜빡임 없이 출력하는 방법을 알고 싶은 분들은

하단 포스팅을 확인해주세요 

https://peuming.tistory.com/31

 

오토핫키(AutoHotkey) 툴팁(tooltip) 깜빡임 없이 출력

오토핫키 공식포럼 발최https://www.autohotkey.com/boards/viewtopic.php?t=62607 [Function] FFToolTip: Flicker-Free ToolTip - AutoHotkey Community@ Quote 02 Jun 2021, 13:29 Through testing I found that the funtion does something that prevents `n fr

peuming.tistory.com

 

 

 

ToolTip

화면 어디에나 항상 위에 떠 있는 창을 표시하는 명령어입니다. 

 

 

파라미터 구조

ToolTip , Text, X, Y, WhichToolTip

 

 

Text

창에 표시할 텍스트 내용입니다. 이 부분은 생략할 수 있으나,

도구 설명이 있는 경우에는 텍스트가 없으면 내용이뜨지 않습니다.  

여러줄을 표시하고자 할때는 ( `n ) 을 사용해서 줄바 꿈을 할 수 있습니다.

 

X,Y

비어 있거나 생략된 경우 마우스 커서 근처에 도구 설명이 표시됩니다. 그렇지 않으면 활성 창을 기준으로 도구 설명의 X 및 Y 위치를 지정합니다.

 

WhichToolTip

비어 있거나 생략된 경우 기본값은 1(첫 번째 도구 설명)입니다. 그렇지 않으면 여러 도구 설명을 동시에 사용할 때 작업할 도구 설명을 나타내기 위해 1에서 20 사이의 숫자를 지정합니다.

 

 

#Persistent
SetTimer, tool_tip, 1
return

tool_tip:
ToolTip,% "툴팁입니다"
return

return
f2::	;F2종료
exitapp

 

 

tooltip.ahk
0.00MB

 

 

 

반응형
반응형

오토핫키 공식포럼 발최

https://www.autohotkey.com/boards/viewtopic.php?t=62607

 

[Function] FFToolTip: Flicker-Free ToolTip - AutoHotkey Community

@ Quote 02 Jun 2021, 13:29 Through testing I found that the funtion does something that prevents `n from starting a new line so to correct for it I added: Reminder := StrReplace(Reminder, " ", "`n") after reading my saved tooltip from ini and Re

www.autohotkey.com

 

#NoEnv
SetBatchLines, -1

ToolTipText := "툴팁"

SetTimer, Timer2, 10
FFToolTip()
return
ExitApp
f1:: ;종료
SetTimer, Timer2, Off

return
Timer1:
ToolTip, %ToolTipText%
Return

Timer2:
FFToolTip(ToolTipText)
Return

Esc::ExitApp

return
FFToolTip(Text:="", X:="", Y:="", WhichToolTip:=1) {
   static ID := [], Xo, Yo, W, H, SavedText
        , PID := DllCall("GetCurrentProcessId")
        , _ := VarSetCapacity(Point, 8)

   if (Text = "") {  ; Hide the tooltip
      ToolTip, , , , WhichToolTip
      ID.Delete(WhichToolTip)
   } else if not ID[WhichToolTip] {  ; First call
      ToolTip, %Text%, X, Y, WhichToolTip
      ID[WhichToolTip] := WinExist("ahk_class tooltips_class32 ahk_pid " PID)
      WinGetPos, , , W, H, % "ahk_id " ID[WhichToolTip]
      SavedText := Text
   } else if (Text != SavedText) {  ; The tooltip text changed
      ToolTip, %Text%, X, Y, WhichToolTip
      WinGetPos, , , W, H, % "ahk_id " ID[WhichToolTip]
      SavedText := Text
   } else {  ; The tooltip is being repositioned
      if (Flag := X = "" || Y = "") {
         DllCall("GetCursorPos", "Ptr", &Point, "Int")
         MouseX := NumGet(Point, 0, "Int")
         MouseY := NumGet(Point, 4, "Int")
      }
      ;
      ; Convert input coordinates to screen coordinates
      ;
      if (A_CoordModeToolTip = "Window") {
         WinGetPos, WinX, WinY, , , A
         X := X = "" ? MouseX + 16 : X + WinX
         Y := Y = "" ? MouseY + 16 : Y + WinY
      } else if (A_CoordModeToolTip = "Client") {
         NumPut(X, Point, 0, "Int"), NumPut(Y, Point, 4, "Int")
         DllCall("ClientToScreen", "Ptr", WinExist("A"), "Ptr", &Point, "Int")
         X := X = "" ? MouseX + 16 : NumGet(Point, 0, "Int")
         Y := Y = "" ? MouseY + 16 : NumGet(Point, 4, "Int")
      } else {  ; A_CoordModeToolTip = "Screen"
         X := X = "" ? MouseX + 16 : X
         Y := Y = "" ? MouseY + 16 : Y
      }
      ;
      ; Deal with the bottom and right edges of the screen
      ;
      if Flag {
         X := X + W >= A_ScreenWidth  ? A_ScreenWidth  - W - 1 : X
         Y := Y + H >= A_ScreenHeight ? A_ScreenHeight - H - 1 : Y
         if (MouseX >= X && MouseX <= X + W && MouseY >= Y && MouseY <= Y + H)
            X := MouseX - W - 3, Y := MouseY - H - 3
      }
      ;
      ; If necessary, store the coordinates and move the tooltip window
      ;
      if (X != Xo || Y != Yo) {
         Xo := X, Yo := Y
         DllCall("MoveWindow", "Ptr", ID[WhichToolTip], "Int", X, "Int", Y, "Int", W, "Int", H, "Int", false, "Int")
      }
   }
}

 

 

툴팁.ahk
0.00MB

반응형
반응형

 

오토핫키 입문자를 위해 간단하게 짜본 보안 문자가 있는 인터페이스 및 기능입니다.

이번 스크립트에서 살펴봐야할 것들은

 

1. 기초적인 함수의 이해

2. 기초적인 배열의 이해

3. 함수안에 GUI 정보를 받아오는법 / 함수 내 gui,submit,nohide만 적으면 적용되지않음

4. Random 명령어 이해

5. v라벨 / g라벨

     

 

<소스코드>

#SingleInstance,Force
title:= "테스트 프밍"
Gui, Add, Button, x11 y8 w100 h20 +Disabled,아이디
Gui, Add, Edit, x121 y8 w320 h20 vid,
Gui, Add, Button, x11 yp+30 w100 h20 +Disabled,패스워드
Gui, Add, Edit, x121 yp w320 h20 vpw +Password,
Gui, Add, Button, x11 yp+30 w100 h20 +Disabled +center,보안문자
Gui, Add, Edit, x121 yp w320 h20 vtext +center +number +Disabled,% random_text("text")
Gui, Add, Edit, x121 yp+30 w320 h20 vtext_in,
Gui, Add, Button, x11 yp+30 w430 h30 glogin,로그인
Gui, Show, x955 y387 h175 w456,% title
Return


return
login:
gui,submit,NoHide
아이디체인지(id,pw)




return
아이디체인지(id,pw){
global
gui,submit,NoHide
if(id = "admin" && pw = "1234" && text_in = text){
	msgbox,64,안내,로그인 성공
}else{
	msgbox,64,안내,로그인 실패
	guicontrol,,text,% random_text("text")
}

return
}
return
random_text(option){
	if(option = "text"){
		arr := ["ㄱ","ㄴ","ㄷ","ㄹ","ㅁ","ㅂ","ㅅ"]
		Loop, 4 {
			Random, final, 1, % arr.MaxIndex()
			randomString .= arr[final]
		}
	}else if(option ="number"){
		Random,randomString,10000,99999
	}
	return randomString
}
return
GuiClose:
ExitApp
return

  

로그인인터페이스 보안문자.ahk
0.00MB

 

random_text("text") - 텍스트 4글자 ㄱ ㄴ ㄷㄹㅁㅂㅅ 중 랜덤으로 4개를 출력

random_text("number") - 숫자로 6글자 숫자를랜덤으로 출력

  

 

반응형

+ Recent posts