2013-07-07 3 views
2

내 스크립트에는 msgbox와 같은 것이 필요하지만 괜찮을 때까지 기다릴 필요는 없습니다.괜찮아요를 클릭하지 않고도 자동 핫키 메시지 상자를 사라지게하려면 어떻게해야합니까?

내가 필요한 것은 일정 시간 동안 문자열을 표시 한 다음 사라지게하는 것입니다. 라이브 타이머 문자열을 표시 할 수 있지만 필수는 아닌 경우 유용합니다. 같은

뭔가 :

... 
msgbox, MyInformationString; display information 
sleep, 30000 ; wait 30 seconds 
; close msgbox but HOW ??? 
... 

그것은 MSGBOX 명령 일 필요는 없습니다. 하지만 나는 정보를 표시하는 새로운 팝업이나 다른 방법을 만드는 방법을 알아낼 수 없습니다. 형식은 여기에서 가장 신경 쓰지 않는 부분입니다.

+0

당신은'tooltip'을 고려 했습니까? –

+0

화면 어디에서나 팝업을 만들려면 [SplashTextOn] (http://www.autohotkey.com/docs/commands/SplashTextOn.htm)을보십시오. – MCL

답변

3

docs에서 msgbox을 확인하십시오. AutoHotkey를 통해 msgbox을 생산 중이므로 자동으로 메시지를 닫을 수있는 시간 제한을 설정할 수 있습니다. 즉, 아무 것도 밀지 않아도된다는 의미입니다. 상자가 나타난 다음 사라집니다. 초

(옵션) 제한 시간, 소수점을 포함하지만 이 기본적으로 표현되지 않습니다 수 있습니다

MsgBox [, Options, Title, Text, Timeout] 

Timeout 마지막 매개 변수입니다. v1.1.06 +에서는 % mins * 60과 같이 강제로 이라는 표현식을 사용할 수 있습니다.

이 값이 2,147,483 (24.8 일)를 초과하는 경우, 그것은 타임 아웃 메시지 상자가 자동 ​​ 닫힐 것이다 지나면 2147483. 설정되고 IfMsgBox 명령 값 TIMEOUT를 볼 것이다.

알려진 제한 사항 :있는 MsgBox는 확인 버튼 만 포함되어있는 경우, IfMsgBox 이 밖으로있는 MsgBox 시간이 자신의 스레드가 다른 의해 중단되는 동안 경우 OK 버튼을 누른 생각합니다.

+0

감사합니다. 이 방법은 제 목적에 상당히 효과적이었습니다. 이제는 (선호) 동일한 메시지 상자 또는 일부 다른 팝업 종류의 라이브 카운트 다운 타이머 디스플레이가 필요합니다. – MelBurslan

+0

새로운 질문을 게시해야합니다. 내가 찾아 볼게. – bgmCoder

5

자신의 카운트 다운이 정말 좋으면 MsgBox로 작동하는 GUI를 만들 수 있습니다. 이 예에서

enter image description here

, 우리는 4 개 매개 변수가 있습니다.

  1. 메시지
  2. 사라질 때 호출 할 레이블의 이름의 수의 제목입니다.

다음은 코드가 일반적인 MsgBox에서이 코드로 변경되는 방식입니다.

MsgBoxTimed("Title", "Msg", 10, "Foo") 
return 
Foo: 
OtherCode 
return 

이 기능에

MsgBox, Title, Msg 
OtherCode 
return 

동일한 파일에 있어야합니다, 또는 #Included

MsgBoxTimed(title, msg, seconds, complete="") { 
    static init = false, _seconds, _complete 
    global Msg92, Seconds92 
    if (!init) 
    { 
     init := true 
     Gui, 92:Font, s24 
     Gui, 92:Add, Text, vMsg92 Center w360, %msg% 
     Gui, 92:Font, s30 cRed 
     Gui, 92:Add, Text, vSeconds92 Center w360, %seconds% 
    } 

    _seconds := seconds 
    _complete := complete 

    GuiControl, 92:, Msg92, %msg% 
    Gui, 92:Show, w400 h150, %title% 

    Update92: 
    GuiControl, 92:, Seconds92, %_seconds% 
    _seconds -= 1 
    if (_seconds > 0) { 
     SetTimer, Update92, -1000 
    } 
    else { 
     Gui, 92:Hide 
     if (_complete) 
      SetTimer, %_complete%, -1 
    } 
    return 
} 
관련 문제