#If [AHK_L 4+]

문맥-감지 핫키핫스트링을 만듭니다. 문맥 감지 핫키는 표현식의 결과에 따라 다르게 조치를 수행합니다 (또는 아무것도 하지 않습니다).

#If Expression

매개변수

Expression

유효한 표현식.

기본 연산

유효한 연산식이면 핫키가 활성화 될 문맥을 정의하는 데 사용할 수 있습니다. 예를 들어:

#If WinActive("ahk_class Notepad") or WinActive(MyWindowTitle)
#Space::MsgBox You pressed Win+Spacebar in Notepad or %MyWindowTitle%.

#IfWin 지시어처럼, #If도 위치에 민감합니다: 스크립트에서 물리적으로 아래에 있는 모든 핫키와 핫스트링에 영향을 줍니다. #If 그리고 #IfWin는 또 상호 배타적입니다; 즉, 가장 최근의 #If 또는 #IfWin만 효과가 있습니다.

문맥 감지를 끄려면, 모든 매개변수를 생략하고 #If 또는 #IfWin 지시어를 지정하면 됩니다. 예를 들어:

#If

다른 지시어처럼, #If는 조건적으로 실행할 수 없습니다.

총평

When the key, mouse or joystick button combination which forms a hotkey is pressed, the #If expression is evaluated to determine if the hotkey should activate.

Note: Scripts should not assume that the expression is only evaluated when the key is pressed (see below).

표현식은 프로그램이 핫키가 활성화되어 있는지 알 필요가 있을 때마다 평가될 수도 있습니다. 예를 들어, a & b::와 같은 맞춤 조합에 대하여 #If 표현식은 접두 키가 (이 예제에서는 a) 눌릴 때 평가되어, 맞춤 수식 키로 행위해야 할지 말지 결정합니다.

Note: Use of #If in an unresponsive script may cause input lag or break hotkeys (see below).

There are several more caveats to the #If directive:

[AHK_L 53+]: A_ThisHotkeyA_TimeSinceThisHotkey는 현재 #If 표현식이 평가되고 있는 핫키에 기반하도록 설정됩니다.

[v1.0.95.00+]: A_PriorHotkeyA_TimeSincePriorHotkey는 임시로 "This" 변수에 상응하는 이전의 값을 담고 있습니다.

#IfWin 지시어의 행위 특성은 대부분 #If에도 적용됩니다.

#IfTimeout을 사용하면 기본 시간제한 값을 바꿀 수 있습니다.

예제

Allows the volume to be adjusted by scrolling the mouse wheel over the taskbar.

#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}
WheelDown::Send {Volume_Down}

MouseIsOver(WinTitle) {
    MouseGetPos,,, Win
    return WinExist(WinTitle . " ahk_id " . Win)
}

모든 편집 콘트롤을 위한 간단한 단어-삭제 단축키.

#If ActiveControlIsOfClass("Edit")
^BS::Send ^+{Left}{Del}
^Del::Send ^+{Right}{Del}

ActiveControlIsOfClass(Class) {
    ControlGetFocus, FocusedControl, A
    ControlGet, FocusedControlHwnd, Hwnd,, %FocusedControl%, A
    WinGetClass, FocusedControlClass, ahk_id %FocusedControlHwnd%
    return (FocusedControlClass=Class)
}

문맥-감지 핫키.

#If
Esc::ExitApp

동적인 핫키. This example should be combined with example #1 before running it.

NumpadAdd::
Hotkey, If, MouseIsOver("ahk_class Shell_TrayWnd")
if (doubleup := !doubleup)
    Hotkey, WheelUp, DoubleUp
else
    Hotkey, WheelUp, WheelUp
return

DoubleUp:
Send {Volume_Up 2}
return