바람의나라 window 안에서만 hotkey 활성화 (2)

오호 09.09 01:18 조회 184 댓글 0


아직 이야기한 적은 없지만 바람의나라 창 제목은 바꿀 수 있습니다.


만약 창 제목을 바꾸는 경우에는 앞에서 설명 드린 방법이 통하지 않을 수 있어


다른 방법도 알아보겠습니다



v1.1

#IfWinActive ahk_class Nexon.NWind
PgUp::SetTimer, Heal, 70
PgDn::SetTimer, Heal, off
#IfWinActive

#IfWinNotActive ahk_class Nexon.NWind
PgUp::SetTimer, Heal, off
PgDn::SetTimer, Heal, off
#IfWinActive


v2.0

#HotIf WinActive("ahk_class Nexon.NWind")
PgUp::SetTimer(Heal, 70) ; 70 ms 마다 자동기원 반복
PgDn::SetTimer(Heal, 0)  ; 자동기원 반복 종료
#HotIf

#HotIf !WinActive("ahk_class Nexon.NWind")
PgUp::SetTimer(Heal, 0)  ; 자동기원 반복 종료
PgDn::SetTimer(Heal, 0)  ; 자동기원 반복 종료
#HotIf



ahk_class는 프로그램의 종류라고 보시면 됩니다.

바람의나라 창이 여러 개 떠 있어도, 종류는 다 같은 바람의나라죠



만약 메모장이라고 하면 ahk_class Notepad 가 됩니다.

이런 식으로 특정 window 제목으로 hotkey를 지정하는 것이 아니고


특정 프로그램에 hotkey를 지정하는 것이 가능합니다.


-----------------------------------------------------------------


다만 문제는 창 제목은 바로 확인해볼 수 있는데, ahk_class는 조금 다른 과정이 필요합니다.


1. autohotkey window spy를 활용


 



autohotkey를 설치했으면 autohotkey window spy도 사용할 수 있습니다.

이 프로그램을 사용하면 창제목, ahk_class, ahk_pid, ahk_id 뿐만 아니고

창 크기 및 위치, mouse 위치,색상 등 다양한 정보를 실시간으로 확인할 수 있습니다.


여기서 ahk_class 값을 알아낼 수 있습니다.



2. 스크립트에서 직접 가져오기


v1.1

F1::
    WinGetClass, className, A
    MsgBox, The ahk_class of the active window is: %className%
return



v2.0

F1::{
    className := WinGetClass("A")
    MsgBox("The ahk_class of the active window is: " className)
}



WinGetClass 함수를 이용해서 ahk_class 이름을 가져올 수도 있습니다.





댓글 0