IT 관련 팁/오토핫키 Autohotkey

오토핫키 - 자주 쓰는 파일 단축키로 실행시키기 | 단축키 | 핫키 | 파일 실행

RayShines 2022. 10. 25. 00:40
반응형

오토핫키를 이용하면 자주 열어야 하는 파일에 대한 단축키를 설정하고 빠르고 쉽게 실행시킬 수 있습니다.

 

작업을 하다보면 빈번히 실행시켜야 하는 문서들이 있습니다. 내용을 다 숙지하고 있기는 어렵지만 엄밀하고 정확한 근거가 필요한 작업을 하는 경우 참고로 하는  PDF 파일들이 그 예입니다. 이런 파일을 바탕화면에 꺼내놓을 수도 있지만 어디서나 작동하는 광역 단축키를 설정할 수 있는 방법이 있습니다.

 

1. 단축키 설정하기

오토핫키로 단축키를 만드는 방법은 매우 간단합니다. 특수키들의 조합을 이용하면 됩니다. 예를 들어 ctrl+win+alt+scrolllock을 단축키로 설정해보겠습니다.

 

^#!ScrollLock::

 

위와 같이 넣으면 됩니다. 단축키의 뒤에는 반드시 콜론이 두 개 들어가야 합니다. 그리고 그 아래 명령어를 넣으면 됩니다.

 

예를 들어 아래와 같이 해볼 수 있습니다.

 

^#!ScrollLock::
run, abc.pdf, c:\Users\
return

 

위의 코드는 ctrl+win+alt+scrolllock을 누르면, Users라는 폴더 아래 있는 abc.pdf라는 파일을 실행시키라는 의미입니다. 그리고 이 코드를 담고 있는 스크립트가 작동 중이라면 어디서든 작동합니다. 

 

그런데 현재 사용하고 있는 프로그램과 단축키가 겹치면 조금 곤란할 때가 많으므로 저는 저렇게 도저히 없을 것 같은 단축키 조합을 이용합니다. Page Up이나 Page Down도 조합하기 좋은 키입니다.

 

 

2. 열고자 하는 파일이 이미 열려 있다면?

그런데 열고자 하는 파일이 이미 열려 있다면 또 열 필요 없이 이미 열려 있는 창을 활성화하기만 하면 될 것입니다. 이때는 ifwinactive, ifwinnotexist, ifwinnotactive라는 명령어들의 조합을 사용하면 됩니다.

 

^#!ScrollLock::
IfWinNotExist, abc.pdf
{
    run, abc.pdf, c:\Users\
}
else
{
    Ifwinactive, abc.pdf
        {
        WinActivate, abc.pdf
        winclose, abc.pdf
        WinWaitClose, abc.pdf
        }
    IfWinNotActive, abc.pdf
        {
        WinActivate, abc.pdf
        }
}
return

 

위의 코드는 조금 복잡해 보이지만 사실은 아주 간단합니다.

 

ifwinnotexist, abc.pdf는 말 그대로 abc.pdf가 아예 열려있지조차 않을 때를 의미합니다. 만약 그렇다면 abc.pdf를 실행합니다.

 

그 아래 else는 "ifwinnotexist, abc.pdf"가 아닌 경우, 즉 exist하는 경우, 다시 말해 활성화되어 있거나 아니면 열려는 있지만 활성화되어 있지 않거나 하는 경우를 말합니다.

 

여기서 경우의 수 두 가지에 대해서 각각 명령어를 달리 할 수 있습니다.

 

ifwinactive, abc.pdf는 만약 현재 abc.pdf가 활성화되어 있다면, 즉 abc.pdf를 내가 보고 있다면, 하는 의미입니다. 저는 이 경우에 해당 단축키를 누르면 문서가 닫히도록 해두었습니다.

 

{
WinActivate, abc.pdf
Winclose, abc.pdf
WinWaitClose, abc.pdf
 }

 

위의 코드의 각 행은

1. abc.pdf를 활성화하고

2. 닫고

3. 닫힐 때까지 기다리라

 

는 명령어입니다.

 

그런데 abc.pdf가 exist하기는 하나 ifwinnotactive라면 이때는 activate해서 전경으로 띄우도록 합니다. 그것이 아래의 코드입니다.

 

 IfWinNotActive, abc.pdf
 {
 WinActivate, abc.pdf
 }

 

3. 요약 및 정리

쉽게 말해 이 코드는 아래와 같이 작동합니다.

 

1. 창이 열려 있지조차 않으면 열어준다. 이렇게 하면 특별한 조치를 하지 않아도 전경에 활성화됩니다.

2. 창이 열려 있고 활성화되어 있으면 닫아버린다.

3. 창이 열려 있는데 활성화되어 있지는 않으면 활성화해서 전경에 띄워준다. 

 

간단한 스크립트이지만 실제로는 활용가치가 높으니 써보시길 바랍니다. 감사합니다.

 

반응형