MsgBox

지정된 텍스트를 작은 창 안에 보여줍니다. 안에 버튼이 들어 있습니다 (예를 들어 Yes 그리고 No).

MsgBox, Text
MsgBox , Options, Title, Text, Timeout

매개변수

Text

모든 매개변수를 생략하면, 메시지 상자는 텍스트 "계속하려면 OK를 누르십시오."를 보여줍니다. 그렇지 않으면, 이 매개변수는 사용자에게 무엇을 해야 하는지 또는 정보를 제공하기 위해 메시지 박스 안에 보여주는 텍스트입니다.

피신 연속열을 사용하면 특수 문자를 표기할 수 있습니다. 예를 들어, `n은 라인피드 문자를 나타냅니다. 이 문자는 현재 줄을 끝내고 새 줄을 시작합니다. 그리하여, "text1`n`ntext2"는 text1과 text2 사이에 빈 줄을 만듭니다.

Text가 길면, 계속 섹션을 수단으로 여러 짧은 줄들로 가를 수 있습니다. 이렇게 하면 가독성과 유지관리성이 개선됩니다.

Options

메시지 박스의 종류와 가능한 버튼 조합을 나타냅니다. 비어 있거나 생략하면, 기본값은 0입니다. 허용되는 값들은 아래의 표를 참조하십시오.

이 매개변수는 기호 그대로의 숫자이거나 ([v1.1.06+]) 또는 % Options와 같은 강제 표현식입니다. 비어 있지 않은 다른 값들은 이 매개변수로 인지하지 않고, 단일-매개변수의 Text의 일부로 인지합니다.

Title

메시지 박스 창의 제목. 생략하거나 비어 있으면, 기본값은 스크립트의 (경로 없이) 이름입니다.

Timeout

(선택적) 초단위 시간 제한, 안에 십진 소수점이 들어 있지만 기본적으로 표현식이 아닙니다. [v1.1.06+]: % mins*60와 같은 강제 표현식일 수 있습니다.

이 값이 2147483 (24.8 일)을 초과하면, 2147483으로 설정됩니다. 시간제한이 경과한 후에 메시지 박스는 자동으로 닫힙니다. 그리고 IfMsgBox 명령어가 그 값 TIMEOUT을 보게 됩니다.

The following limitation was fixed in [v1.1.30.01]: If the message box contains only an OK button, IfMsgBox will think that the OK button was pressed if the message box times out while its own thread is inactive due to being interrupted by another.

Values for the Options parameter

The Options parameter can be a combination (sum) of values from the following groups.

Group #1: Buttons

To indicate the buttons displayed in the message box, add one of the following values:

기능 십진수 값 십육진수 값
OK (즉, OK 버튼이 보여집니다) 0 0x0
OK/Cancel 1 0x1
Abort/Retry/Ignore 2 0x2
Yes/No/Cancel 3 0x3
Yes/No 4 0x4
Retry/Cancel 5 0x5
Cancel/Try Again/Continue 6 0x6

Group #2: Icon

To display an icon in the message box, add one of the following values:

기능 십진수 값 십육진수 값
손 아이콘 (중지/에러) 16 0x10
질문 아이콘 32 0x20
감탄 아이콘 48 0x30
별표 아이콘 (정보) 64 0x40

Group #3: Default Button

To indicate the default button, add one of the following values:

기능 십진수 값 십육진수 값
2nd 버튼이 기본값 256 0x100
3rd 버튼이 기본값 512 0x200
4th 버튼이 기본값
(requires the Help button to be present)
768 0x300

Group #4: Modality

To indicate the modality of the dialog box, add one of the following values:

기능 십진수 값 십육진수 값
System Modal (항상 위) 4096 0x1000
Task Modal 8192 0x2000
항상 위 (스타일 WS_EX_TOPMOST)
(시스템 모델과 같지만 제목 바 아이콘이 생략됩니다)
262144 0x40000

Group #5: Other Options

To specify other options, add one or more of the following values:

기능 십진수 값 십육진수 값
도움말 버튼 추기 (아래 논평 참조) 16384 0x4000
텍스트를 우측 정렬 524288 0x80000
Hebrew/Arabic에 대하여 오른쪽에서 왼쪽으로 읽음 1048576 0x100000

논평

A message box usually looks like this:

MsgBox

위의 표에서 메시지 상자에 보여줄 값들을 더해서 사용됩니다. 예를 들어, 기본 버튼을 Yes 대신에 No로 하여 Yes/No 박스를 지정하려면, Options 값은 256+4 (260)가 됩니다. 십육진수로 0x100+0x4 (0x104)가 됩니다.

MsgBox는 똑똑하게 쉼표를 처리합니다. 그래서 보통 Text 매개변수 안에 있는 쉼표를 피신 시킬 필요가 없습니다.

최근의 메시지 상자에서 사용자가 어느 버튼을 눌렀는지 알아 내려면, IfMsgBox 명령어를 사용하십시오. 예를 들어:

MsgBox, 4,, 계속 하시겠습니까? (Yes 또는 No를 누르십시오)
IfMsgBox Yes
    MsgBox Yes를 누르셨습니다.
else
    MsgBox No를 누르셨습니다.

버튼의 이름들은 다음 예제를 따라 재단할 수 있습니다.

정보: 메시지 상자 창이 활성화되어 있는 동안 Ctrl+C를 누르면 그의 텍스트를 클립보드로 복사합니다. 이것은 AutoHotkey가 생산한 메시지 상자는 물론이고 모든 메시지 상자에 적용됩니다.

GUI 창과 함께 MsgBox 사용하기: GUI 창은 Gui +OwnDialogs를 사용하면 모달 메시지 상자를 보여줄 수 있습니다. 모달 메시지 상자에서 사용자는 메시지 상자를 끝낼 때까지 GUI 창과 상호 작용할 수 없습니다. 그런 경우, 위의 테이블에 있는 System Modal 또는 Task Modal 옵션을 지정할 필요가 없습니다.

Gui +OwnDialogs가 겨져 있지 않으면, Task Modal 옵션(8192)을 사용하면 사용자가 메시지 상자를 끝낼 때까지 스크립트의 모든 창을 끌 수 있습니다.

도움말 버튼: 도움말 버튼 옵션 (16384)이 Options에 존재하면, 도움말 버튼을 클릭해도 아무 효과도 없습니다. 단, 다음 두 조건이 모두 참인 경우는 예외입니다:

  1. Gui +OwnDialogs를 수단으로 메시지 상자를 GUI 창이 소유합니다.
  2. 스크립트가 WM_HELP 메시지 (0x0053)를 감시하고 있습니다. 예를 들어: OnMessage(0x0053, "WM_HELP"). WM_HELP() 함수가 호출될 때, 사용자를 안내 할 수 있습니다. 예를 들어 또다른 창이나 MsgBox를 보여줍니다.

닫기 버튼 (메시지 상자의 제목 바에 있는): 메시지 상자 창은 운영 체제의 내장 특징이기 때문에 , 그의 X 버튼은 어떤 버튼이 존재할 경우에만 활성 화됩니다. 오직 OK 버튼만 있다면, X 버튼을 클릭하더라도 OK를 클릭한 것과 같습니다. 그렇지 않으면, X 버튼은 비활성화 됩니다. 단, Cancel 버튼이 있다면 예외인데, 이 경우 X를 클릭한 것은 Cancel를 누른 것과 같습니다.

IfMsgBox, InputBox, FileSelectFile, FileSelectFolder, ToolTip, GUI

예제

매개변수가 한 개인 방법. A quick and easy way to show information. The user can press an OK button to close the message box and continue execution.

MsgBox 이것은 매개변수가 한 개인 방법입니다. 쉼표 (,)는 피신시킬 필요가 없습니다.

매개변수가 세 개인 방법. Use the first and second parameter to specify the options and the title.

MsgBox, 4, , 이것은 매개변수가 세 개인 방법입니다. 쉼표 (,)는 피신시킬 필요가 없습니다.

Use IfMsgBox to determine which button the user pressed in the most recent message box.

MsgBox, 4, , 계속하시겠습니까? (YES 또는 NO를 누릅니다)
IfMsgBox No
    return

매개변수가 네 개인 방법. Use the fourth parameter (Timeout) to automatically close the message box after a certain number of seconds.

MsgBox, 4, , 매개변수가 네 개인 방법: 이 MsgBox는 시간제한이 5초입니다.  계속하시겠습니까?, 5
IfMsgBox Timeout
    MsgBox 5 초 안에 YES 또는 NO를 누르지 않았습니다.
else IfMsgBox No
    return

매개변수 앞에 % 를 배치하면, 표현식이 됩니다. 다음 예제에서, 계산이 수행되고, 의시-배열 원소에 접근합니다. 그리고 함수를 호출합니다. 이 모든 항목들은 "." 연산자로 결합되어 하나의 문자열을 형성해 MsgBox에 보여집니다.

MsgBox % "New width for object #" . A_Index . " is: " . RestrictWidth(ObjectWidth%A_Index% * ScalingFactor)

메시지 상자가 초점을 훔치고 있다고 사용자에게 경고합니다 (이 경우 사용자가 타자하고 있음).

SplashTextOn,,, A message box is about to appear.
Sleep 3000
SplashTextOff
MsgBox 백업이 완료되었습니다.