본문 바로가기
programming language/Autohotkey

Autohotkey Group 사용하기 GroupAdd, GroupClose

by __observer__ 2014. 2. 11.
반응형

윈도우 컴퓨터를 사용하다 보면 브라우져나 메모장과 같은 프로그램을 많이 열어 놓고 사용하는 경우가 있습니다.

 

이렇게 너저분하게 이것 저것 열어 놓고 사용하다가 작업을 다 완료 하였을 경우에는 필요없는 것들을 한꺼번에 닫아야 할 경우가 생기죠~

 

이런 경우 Autohotkey 의 Group 을 사용하면 대단히 편리하게 필요없는 프로그램들을 관리 할 수 있습니다.

 

저는 아래 그림과 같이 크롬 브라우져가 여러 개 열려 있을 경우에 대해 설명해 보려 합니다.

 

다음과 같이 닫고자 하는 프로그램의 class 를 그룹으로 지정해 줍니다. 아래 코드에서 MyGroup은 임의로 정한 그룹 이름 입니다.

 

GroupAdd, MyGroup, ahk_class Chrome_WidgetWin_1

 

Autohotkey 에서 프로그램의 class 명을 알아보는 방법은 아래 주소에서 참조하시기 바랍니다.

 

2013/05/05 - [programming language/Autohotkey] - Autohotkey 에서 ahk_class 확인하기

 

다음으로 그룹들을 다~ 닫아주는 코드는 다음과 같습니다.

 

WinClose ahk_group MyGroup

Or

GroupClose, MyGroup, A

 

열려 있는 크롬 브라우져에서 제일 늦에 열린 즉, 가장 최근에 사용한 크롬 브라우져만 닫고 싶다면 위 코드에서 A 옵션 대신에 R 옵션을 주면 됩니다. 다음 코드와 같이요~

GroupClose, MyGroup, R

 

위 설명에 따른 전체 코드는 다음과 같습니다. 아래 코드에서는 Win+c 버튼을 누르면 열려 있던 크롬 브라우져가 다 닫히게 됩니다.

 

#c::

GroupAdd, MyGroup, ahk_class Chrome_WidgetWin_1

GroupClose, MyGroup, A

return

 

Autohotkey 의 Group 은 아직까지 GroupAdd 만 있습니다. Group Delete 와 같은 기능은 없기 때문에 아래 코드와 같이 그룹 이름을 동일하게 사용하면 잘못된 동작을 하게 됩니다.

 

< 잘못된 그룹 사용 예 >

#c:: ; win+c 크롬 닫기

GroupAdd, MyGroup, ahk_class Chrome_WidgetWin_1

GroupClose, MyGroup, A

return

 

#d:: ; win+d 익스플로러 닫기

GroupAdd, MyGroup, ahk_class IEFrame

GroupClose, MyGroup, A

return

 

따라서 다른 용도로 그룹을 사용할 때는 꼭!! 다른 그룹 명을 써 줘야 합니다.

< 옳은 그룹 사용 예 >

#c:: ; win+c 크롬 닫기

GroupAdd, MyGroup1, ahk_class Chrome_WidgetWin_1

GroupClose, MyGroup1, A

return

 

#d:: ; win+d 익스플로러 닫기

GroupAdd, MyGroup2, ahk_class IEFrame

GroupClose, MyGroup2, A

return

 

그런데 이와 같이 그룹 명을 계속 바꿔주는게 헷갈리는 경우가 있습니다. 그래서 아래 포럼에서는 GroupInit() 라는 함수를 만들어서 사용하더군요.

 

http://www.autohotkey.com/board/topic/71695-is-there-any-way-to-destroy-delete-a-window-group/

 

GroupInit() 함수는 간단하게 그룹 이름을 알아서 새로 생성하는 겁니다.

 

GroupInit() 함수를 사용하여 위 코드를 다음과 같이 변환 할 수 있습니다.

 

GroupInit(ByRef GroupName){ ; Stores new name

static g:= 1 ; of an empty window group

GroupName:= "Group" g++ ; into the passed variable

}

 

#c:: ; 크롬 닫기

GroupInit(MyGroup)

GroupAdd, %MyGroup%, ahk_class Chrome_WidgetWin_1

GroupClose, %MyGroup%, A

return

 

#d:: ; 익스플로러 닫기

GroupInit(MyGroup)

GroupAdd, %MyGroup%, ahk_class IEFrame

GroupClose, %MyGroup%, A

return

 

위와 같이 하면 하나의 Autohotkey 파일 내에서 동일한 그룹 명(위 예에서는 MyGroup)을 이용하여 다양한 그룹을 제어 할 수 있게 됩니다.


위 코드를 이용하여 구글 크롬과 익스플로러를 한번에 다 닫는 동영상 입니다. 



반응형

댓글