OnExit

½ºÅ©¸³Æ®°¡ Á¾·áÇÒ ¶§ ÀÚµ¿À¸·Î ½ÇÇàÇÒ ¼­ºê·çƾ ¶Ç´Â ÇÔ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

OnExit [, Label]
OnExit(Func [, AddRemove])  ; Requires [v1.1.20+]

¸Å°³º¯¼ö

Label

»ý·«Çϸé, ÀÌÀü¿¡ µî·ÏµÈ ¶óº§ÀÌ µî·Ï ÇØÁ¦µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ½ºÅ©¸³Æ®°¡ ¾î¶² ¹æ½ÄÀ¸·Îµç Á¾·áÇÒ ¶§ ±×ÀÇ ³»¿ëÀÌ (»õ ¾²·¹µå·Î) ½ÇÇàµÉ ¶óº§ÀÇ À̸§À» ÁöÁ¤ÇϽʽÿÀ.

Func

½ºÅ©¸³Æ®°¡ Á¾·áÇÒ ¶§ È£ÃâÇÒ ÇÔ¼ö À̸§ ¶Ç´Â ÇÔ¼ö °´Ã¼. ÀÌ ÇÔ¼ö´Â ¼±ÅÃÀûÀ¸·Î ¾Æ·¡¿Í °°ÀÌ ¸Å°³º¯¼ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. OnExit ÇÔ¼ö°¡ 0 ¾Æ´Ñ Á¤¼ö °ªÀ» µ¹·Á ÁÖ¸é, ½ºÅ©¸³Æ®´Â Á¾·áÇÏÁö ¾Ê½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ½ºÅ©¸³Æ®´Â ¸ðµç µî·ÏµÈ ÇÔ¼ö¸¦ È£ÃâÇÑ ÈÄ¿¡ Á¾·áÇÕ´Ï´Ù.

ExitFunc(ExitReason, ExitCode)
AddRemove

´ÙÀ½ °ª Áß Çϳª:
1 (±âº»°ª): ÀÌÀü¿¡ µî·ÏµÈ ÇÔ¼öµé ´ÙÀ½¿¡ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
-1: ÀÌÀü¿¡ µî·ÏµÈ ÇÔ¼öº¸´Ù ¸ÕÀú ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
0: ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê½À´Ï´Ù.

¶óº§(¼­ºê·çƾ)ÀÌ µî·ÏµÇ¾î ÀÖÀ¸¸é, ±×°ÍÀÌ ¾ðÁ¦³ª ¸ÕÀú È£ÃâµË´Ï´Ù.

³íÆò

Áß¿ä: ½ºÅ©¸³Æ®¸¦ Á¾·áÇÏ´Â ´ë½Å¿¡ ÁöÁ¤µÈ ¼­ºê·çƾÀÌ È£ÃâµÇ±â ¶§¹®¿¡, ±× ¼­ºê·çƾÀº Á¾·á°¡ ÇÊ¿äÇÏ¸é ¹Ýµå½Ã ExitApp ¸í·É¾î¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. [v1.1.20+]: »õ ½ºÅ©¸³Æ®´Â ¼­ºê·çƾ ´ë½Å¿¡ ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù -- ÀÌ·¸°Ô ÇÏ¸é ¿ì¹ßÀûÀ¸·Î Á¾·á°¡ ºÒ°¡´ÉÇÑ ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î ³¾ À§ÇèÀ» ÁÙ¿© ÁÝ´Ï´Ù. ±×¸®°í Exit ¶Ç´Â ExitApp¿¡ °Ç³Ù Á¾·á Äڵ尡 º¸Á¸µÈ´Ù´Â È®½ÅÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

[v1.1.20+]: ¾ó¸¶µçÁö OnExit ÇÔ¼ö¸¦ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶óº§ (¼­ºê·çƾ)µµ µî·ÏµÇ¾î ÀÖ´Ù¸é, ÇÔ¼ö´Â ¼­ºê·çƾÀÌ ExitApp¸¦ È£ÃâÇÑ µÚ¿¡ È£ÃâµË´Ï´Ù. OnExit ÇÔ¼ö´Â º¸Åë ExitApp¸¦ È£ÃâÇÏ¸é ¾È µË´Ï´Ù; ±×·² °æ¿ì, ½ºÅ©¸³Æ®´Â Áï½Ã Á¾·áÇÕ´Ï´Ù.

¾î¶² ¼ö´ÜÀ¸·Îµç ½ºÅ©¸³Æ®°¡ Á¾·áÇÒ ¶§ OnExit ¼­ºê·çƾÀÌ È£ÃâµË´Ï´Ù (´Ü, "End Task"¿Í °°Àº °ÍÀ¸·Î Á¾·áµÇ´Â °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù). ¶ÇÇÑ #SingleInstance ±×¸®°í Reload ¸í·É¾î°¡ ÀÌÀüÀÌ ½Çü¸¦ Á¾·áÇϵµ·Ï ¿ä±¸ÇÒ ¶§¸¶´Ù È£ÃâµË´Ï´Ù.

½ºÅ©¸³Æ®´Â OnMessage(0x11, "WM_QUERYENDSESSION")¸¦ ÅëÇÏ¿© ½Ã½ºÅÛ ¼Ë´Ù¿îÀ̳ª ·Î±×¿ÀÇÁ¸¦ ŽÁöÇÒ ¼ö ÀÖ°í ¼±ÅÃÀûÀ¸·Î Ãë¼ÒÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

OnExit ¾²·¹µå´Â #MaxThreads¸¦ ÁؼöÇÏÁö ¾Ê½À´Ï´Ù. (ÇÊ¿äÇÏ¸é ¾ðÁ¦µçÁö ±âµ¿ÇÕ´Ï´Ù). °Ô´Ù°¡, ½ÇÇà ÁßÀÎ µ¿¾È, ´Ù¸¥ ¾²·¹µå·Î ÀÎÅÍ·´Æ® ÇÒ ¼ö ¾ø½À´Ï´Ù. ¿©±â¿¡´Â ÇÖÅ°, ¸ÂÃã ¸Þ´º Ç׸ñ, ±×¸®°í ŸÀÌ¸Ó ¼­ºê·çƾÀÌ Æ÷ÇԵ˴ϴÙ. ±×·¸Áö¸¸, »ç¿ëÀÚ°¡ ¸ÞÀÎ ¸Þ´º³ª Æ®·¹ÀÌ ¸Þ´º·ÎºÎÅÍ ExitÀ» ¼±ÅÃÇß´Ù¸é ÀÎÅÍ·´Æ® µË´Ï´Ù (±×¸®°í ½ºÅ©¸³Æ®´Â Á¾·áÇÕ´Ï´Ù). ±×·¸Áö ¾ÊÀ¸¸é ½ºÅ©¸³Æ®¿¡ Reload ¶Ç´Â #SingleInstance °á°ú·Î Á¾·áÇϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡ OnExit ¼­ºê·çƾÀº »¡¸® ³¡³ªµµ·Ï ¼³°èÇØ¾ß ÇÕ´Ï´Ù. ´Ü, »ç¿ëÀÚ°¡ ¹«½¼ ÀÏÀÌ ÁøÇàµÇ´ÂÁö ¾Ë°í ÀÖ´Â °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.

OnExit ¾²·¹µå°¡ ½ÇÇà½Ã°£ ¿¡·¯ °°Àº ½ÇÆÐ Á¶°ÇÀ» ¸¸³ª¸é, ½ºÅ©¸³Æ®´Â Á¾·áÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡ °áÇÔÀÌ ÀÖ´Â OnExit ¼­ºê·çƾÀº ½ºÅ©¸³Æ®¸¦ Á¾·áÇÏÁö ¸øÇÏ°Ô ¸·À» ¼ö ¾ø½À´Ï´Ù.

Exit ¶Ç´Â ExitApp ¸í·É¾î ¶§¹®¿¡, Á¾·á Äڵ带 ÁöÁ¤ÇÑ OnExit ¼­ºê·çƾÀÌ ±âµ¿µÇ¸é, v1.1.19 ÀÌÀü¿¡¼­ ±× ÄÚµå´Â ¹«½ÃµÇ°í ´õ ÀÌ»ó »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. [v1.1.20+]¿¡¼­ ÃÖÃÊÀÇ Á¾·á Äڵ尡 »ç¿ëµË´Ï´Ù. ´Ü, ExitApp È£ÃâÇÏ¿© »õ Á¾·á ÄÚµå·Î ¿À¹ö¶óÀ̵åÇÑ °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.

OnExit ¼­ºê·çƾÀÌ Á¾·á ½Ãµµ·Î È£ÃâµÉ ¶§¸¶´Ù, SendMode¿Í °°Àº ¼³Á¤¿¡ ´ëÇÑ ±âº» °ªµéÀ» °¡Áö°í »õ·Ó°Ô ½ÃÀÛÇÕ´Ï´Ù. ÀÌ·± ±âº»°ªµéÀº ÀÚµ¿-½ÇÇà ¼½¼Ç¿¡¼­ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù.

³»Àå ÇÔ¼ö A_ExitReason´Â ºñ¾î ÀÖ½À´Ï´Ù. ´Ü, OnExit ¼­ºê·çƾÀÌ ÇöÀç ½ÇÇà ÁßÀ̰ųª ÀÌÀüÀÌ Á¾·á ½Ãµµ·Î ÀÎÇØ Àû¾îµµ ÇÑ ¹ø È£ÃâµÈ °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù. ºñ¾î ÀÖÁö ¾ÊÀ¸¸é, ´ÙÀ½ ´Ü¾î Áß ÇϳªÀÔ´Ï´Ù:

Logoff »ç¿ëÀÚ°¡ ·Î±×¿ÀÇÁ ÁßÀÔ´Ï´Ù.
Shutdown ¿¹¸¦ µé¾î Shutdown ¸í·É¾î·Î ½Ã½ºÅÛÀÌ ´ÝÈ÷°í ÀÖ´Â ÁßÀ̰ųª Àç½ÃÀÛ ÁßÀÔ´Ï´Ù.
Close ½ºÅ©¸³Æ®¿¡ WM_CLOSE ¶Ç´Â WM_QUIT ¸Þ½ÃÁö°¡ Àü¼ÛµÇ¾ú½À´Ï´Ù. ½ºÅ©¸³Æ®¿¡ ½É°¢ÇÑ ¿¡·¯°¡ ÀÖ½À´Ï´Ù. ¶Ç´Â ´Ù¸¥ ¾î¶² ¹æ¹ýÀ¸·Î ´ÝÇû½À´Ï´Ù. ÀÌ ¸ðµç °ÍÀÌ ºñÁ¤»óÀûÀÌÁö¸¸, WM_CLOSE´Â ½ºÅ©¸³Æ®ÀÇ ¸ÞÀΠâ¿¡ »ç¿ëµÈ WinClose¿¡ ÀÇÇØ ¾ß±âµÉ ¼öµµ ÀÖ½À´Ï´Ù. À̸¦ ¹æÁöÇÏ·Á¸é, ¸ÞÀΠâÀ» Send, !{F4}·Î Ãë¼ÒÇϽʽÿÀ.
Error ½ÇÇà½Ã°£ ¿¡·¯°¡ ÇÖÅ°°¡ ¾ø°í ¿µ¼ÓÀûÀÌ ¾Æ´Ñ ½ºÅ©¸³Æ®¿¡ ÀϾ½À´Ï´Ù. ½ÇÇà½Ã°£ ¿¡·¯ÀÇ ¿¹´Â Run/RunWait°¡ ÁöÁ¤µÈ ÇÁ·Î±×·¥À̳ª ¹®¼­¸¦ ±âµ¿½ÃÅ°Áö ¸øÇÏ´Â °æ¿ìÀÔ´Ï´Ù.
Menu »ç¿ëÀÚ°¡ ¸ÞÀΠâÀÇ ¸Þ´º ¶Ç´Â Ç¥ÁØ Æ®·¹ÀÌ ¸Þ´º·ÎºÎÅÍ ·ÎºÎÅÍ Exit¸¦ ¼±ÅÃÇß½À´Ï´Ù.
Exit Exit ¶Ç´Â ExitApp ¸í·É¾î°¡ »ç¿ëµÇ¾ú½À´Ï´Ù (¸ÂÃã ¸Þ´º Ç׸ñ Æ÷ÇÔ).
Reload ½ºÅ©¸³Æ®°¡Reload ¸í·É¾î³ª ¸Þ´º Ç׸ñÀ» ÅëÇÏ¿© ÀçÀûÀç ÁßÀÔ´Ï´Ù.
Single #SingleInstanceÀÇ °á°ú·Î ½ºÅ©¸³Æ®°¡ ÀÚ½ÅÀÇ »õ ½Çü·Î ±³Ã¼ ÁßÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ

OnMessage(), RegisterCallback(), OnClipboardChange, ExitApp, Shutdown, #Persistent, Threads, Gosub, Return, Menu

¿¹Á¦

´ÙÀ½ ¿¹Á¦´Â #Persistent¸¦ »ç¿ëÇÏ¿© ½ºÅ©¸³Æ®°¡ ÀÚµ¿À¸·Î Á¾·áÇÏ´Â °ÍÀ» ¸·½À´Ï´Ù. ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÑ ÈÄ¿¡, Æ®·¹ÀÌ ¾ÆÀÌÄÜÀ» ¿ìŬ¸¯ÇÏ°í ExitÀ» Ŭ¸¯ÇØ º¸¸é OnExit ¶Ç´Â ÇÔ¼ö°¡ ÀÛµ¿ÇÏ´ÂÁö °ËÁõÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ±× ´ÙÀ½ "Yes"¸¦ Ŭ¸¯ÇÏ¸é ½ºÅ©¸³Æ®°¡ Á¾·áÇÏ°í "No"¸¦ Ŭ¸¯ÇÏ¸é ½ÇÇàÀ» ±×´ë·Î À¯ÁöÇÕ´Ï´Ù.

#Persistent
OnExit, ExitSub
return

ExitSub:
if A_ExitReason not in Logoff,Shutdown  ; ÀÌ ÁÙ¿¡¼­ ½°Ç¥ µÑ·¹¿¡ ½ºÆäÀ̽º¸¦ ÇÇÇϽʽÿÀ.
{
    MsgBox, 4, , Á¾·áÇÏ°í ½Í½À´Ï±î?
    IfMsgBox, No
        return
}
ExitApp  ; OnExit ¼­ºê·çƾÀÌ ÀÖ´Â ½ºÅ©¸³Æ®´Â Á¾·áÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ¼­ºê·çƾÀÌ ExitApp¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.
 
#Persistent

; Á¾·á½Ã¿¡ È£ÃâµÉ ÇÔ¼ö¸¦ µî·ÏÇÕ´Ï´Ù:
OnExit("ExitFunc")

; Á¾·á½Ã¿¡ È£Ãâµ¹ °´Ã¼¸¦ µî·ÏÇÕ´Ï´Ù:
OnExit(ObjBindMethod(MyObject, "Exiting"))

ExitFunc(ExitReason, ExitCode)
{
    if ExitReason not in Logoff,Shutdown
    {
        MsgBox, 4, , ³¡³»°í ½Í½À´Ï±î?
        IfMsgBox, No
            return 1  ; OnExit ÇÔ¼ö´Â Á¾·á¸¦ ¸·±â À§ÇØ ¹Ýµå½Ã 0 ¾Æ´Ñ °ªÀ» µ¹·ÁÁÖ¾î¾ß ÇÕ´Ï´Ù.
    }
    ; ExitApp¸¦ È£ÃâÇÏÁö ¸¶½Ê½Ã¿À -- ±×·¯¸é ´Ù¸¥ OnExit ÇÔ¼ö°¡ È£ÃâµÇÁö ¸øÇÕ´Ï´Ù.
}

class MyObject
{
    Exiting()
    {
        MsgBox, Á¾·áÇϱâ Àü¿¡ MyObject°¡ û¼Ò ÁßÀÔ´Ï´Ù...
        /*
        this.SayGoodbye()
        this.CloseNetworkConnections()
        */
    }
}