카테고리 보관물: 유용한 프로그램

반복적인 작업을 줄여주는 AutoHotKey

AutoHotKey 는 하나의 프로그램이지만 사용할 수 있는 범위가 무척 다양합니다. 단축키를 지정하여 키가 눌려지면 여러가지 동작을 할 수 있도록 해 주는 프로그램 입니다. 다음의 링크에서 다운로드 받을 수 있습니다.

https://autohotkey.com/

포럼도 활성화 되어 있어 많은 정보를 얻을 수 있습니다. 스크립트 기반으로 되어 있어서 처음에는 익숙하지 않을 수도 있습니다. 하지만 잘 살펴보고 필요한 것을 위해 변경하다 보면 그리 어렵지 않습니다. 스크립트 작성하는 방법과 예제는 홈페이지를 참조하시면 됩니다.

여러 용도가 있지만 필자는 주로 작업시에 시간을 줄이는데 사용하고 있습니다. 몇 가지 소개해 보겠습니다.

  1. 마우스 드래그하면 자동으로 클립보드에 복사하기
    텍스트 에디터나 IDE 에서 작업을 하다보면 복사(Ctrl+C)와 붙여넣기(Ctrl+V)를 많이 실행하게 됩니다. 마우스를 드래그하여 글자를 선택하면 많은 경우 복사로 이어지게 됩니다. 그래서 마우스를 드래그 하면 자동으로 클립보드에 복사 되도록 하였습니다. 동작방식은 마우스 버튼을 클릭하면 좌표를 저장하고 버튼에서 손가락을 떼었을 때 좌표를 가져와서 서로 비교하여 지정된 길이 이상 차이가 나면 Ctrl+C 가 눌린 것처럼 하는 것 입니다. 무조건 이렇게 할 수도 있고 특정한 프로그램에서만 되도록 할 수 있습니다. 주의할 것은 여러개의 모니터를 사용하는 경우 메인 모니터를 기준으로 하기 때문에 보조 모니터는 좌표가 음수로 나타날 수 있습니다. 아래는 스크립트 입니다.

    ~LButton:: MouseGetPos x1,,win
    
    ~LButton Up::
    SetTitleMatchMode, 2
    TitleList = WordPad,Notepad,Word,AkelPad,Notepad++,UltraEdit,Visual Studio,Chrome,Java,SQL ;프로그램 제목
    Loop parse, TitleList, CSV
    GroupAdd Editors, %A_LoopField%
    
    IfWinActive ahk_group Editors
    {
        ;모니터의 개수와 해상도에 맞게 변경
        MouseGetPos x2	
        if ((x1 <= -1 and x1 >= -1280) and (x2 <= -1 and x2 >= -1280)) or ((x1 <= 1920 and x1 >= 1) and (x2 <= 1920 and x2 >= 1)) or ((x1 <= 3968 and x1 >= 1921) and (x2 <= 3968 and x2 >= 1921))
            if  (x2 - x1) < -30 or (x2 - x1) > 30
    			Send ^c ;Ctrl+C 전송
       return 
    }
    else
    {
       return
    }
    
  2. 마우스 가운데 버튼을 클릭하면 붙여넣기가 되도록 설정
    마우스 가운데 버튼을 클릭하는 경우가 거의 없어서 필자는 붙여넣기가 되도록 하였습니다. Ctrl+V 를 누르는 것보다 시간이 절약됩니다.

    ~Mbutton:: ;마우스 가운데 버튼
    	Send, ^v ;Ctrl+V 전송
    return
    
  3. 특정한 키를 누르면 현재일시가 타이핑되도록 설정
    필자는 파일을 만들거나 자료를 정리할 때 그리고 백업을 할때 일시를 뒤쪽에 붙여서 구별이 쉽게합니다. AutoHotKey 를 이용하지 않을때는 시계를 보고 입력 했었는데 이제는 자동화하였습니다. 생각보다 시간이 많이 절약됩니다. IME_CHECK 함수가 현재 입력기(IME) 모드의 정보를 가져옵니다. Ctrl+Alt+C 키를 누르면 -20170218103640 와 같은 형식으로 직접 입력한 것처럼 입력해 줍니다.

    ^!c:: ;Ctrl+Alt+C 키가 눌렸을때
    ret := IME_CHECK("A") ;키보드 입력상태
    
    if %ret% = 0 ;영문
    {
    	SendInput, -%A_YYYY%%A_MM%%A_DD%%A_Hour%%A_Min%%A_Sec%
    }
    else ;영문이 아니면
    {
    	Send, {vk15sc138} ;한영전환
    	SendInput, -%A_YYYY%%A_MM%%A_DD%%A_Hour%%A_Min%%A_Sec%
    	Send, {vk15sc138} ;한영전환
    }
    return
    
    IME_CHECK(WinTitle)
    {
        WinGet,hWnd,ID,%WinTitle%
        Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"")
    }
    
  4. 프로그램 실행
    단순 실행은 윈도우 자체로도 가능합니다. 하지만 더 복잡한 동작을 지정할 수 없습니다. AutoHotKey 를 이용하면 더 유연하게 프로그램을 실행할 수 있습니다. 예를 들어 복사된 텍스트로 구글 검색을 하고 싶다거나 영어사전에서 찾아보고 싶은 때가 있습니다. 그럴 때 유용하게 사용할 수 있습니다.

    #g:: Run, http://www.google.com/search?q=%Clipboard% Return ;윈도우키+G 클립보드에 있는 텍스트로 구글검색
    #n:: Run, http://endic.naver.com/search.nhn?sLn=kr&dicQuery=%Clipboard%&x=20&y=16&query=%Clipboard%&target=endic&ie=utf8&query_utf=&isOnlyViewEE=N Return ;윈도우키+N 클립보드에 있는 텍스트로 사전검색
    

이 글에서는 아주 일부의 예만 제시 하였습니다. 평소 반복적이고 시간이 많이 소요되는 작업이 있다면 AutoHotKey를 이용하여 자동화하여 다른 의미 있는 것에 더 많은 시간을 쓸 수 있도록 하시기 바랍니다.

파일이름을 쉽게 변경하는 프로그램 ReNamer

이런저런 이유로 파일 여러개의 이름을 변경해야 하는 경우가 있습니다. 수동으로 변경하기에는 개수가 많아 의미없이 많은 시간을 쓰게 됩니다. 이럴때 사용하는 프로그램이 ReNamer 입니다. 사용법이 직관적이고 간단합니다.

ReNamer 실행 초기화면

ReNamer 실행 초기화면

실행하면 위/아래로 영역이 나누어져 있습니다. 먼저 이름을 변경할 파일을 드래그 하여 아래쪽 영역에 추가합니다. 저는 많은 양의 이미지 파일이나 동영상파일의 이름을 간단하게 변경하는데 많이 사용합니다.

파일을 추가한 후 변경하고자 하는 부분에 대해서 Rule을 추가하면 됩니다.

대상 파일을 추가한 후

대상 파일을 추가한 후

[SFclub] 과 .DviX.Mp3-sosdrjoo 부분을 없애서 필요한 정보만 있는 파일이름으로 변경해 보도록 하겠습니다. 이렇게 하면 화면이 작은 다른 기기에 옮겨서 볼때 파일을 쉽게 찾을 수 있습니다.

위쪽에 Add 버튼을 클릭하면 Add Rule 대화상자가 나타납니다. 종류가 여러개 있는데 단어의 뜻으로 대략 어떻게 동작할 것이라는 예측을 할 수 있습니다. 예에서는 Replace나 Remove 를 선택하면 원하는 목적을 달성할 수 있습니다. Remove로 진행해 보겠습니다.

첫번째 Rule 추가

첫번째 Rule 추가

첫번째 Rule 추가하면 위쪽에 정보가 나타나고 변경될 파일이름을 미리 볼 수 있습니다. 변경될 파일이름앞에 [SFclub] 부분이 사라진 것을 볼 수 있습니다.

Rule을 추가한 후 화면

Rule을 추가한 후 화면

같은 방식으로 .DviX.Mp3-sosdrjoo 를 없애는 Rule 추가하면 필요한 내용만 있는 파일이름으로 변경됨을 알 수 있습니다.

Rule 을 더 추가한 화면

Rule 을 더 추가한 화면

Rule 을 선택하고 더블클릭 하면 수정할 수 있는 대화상자가 나타납니다.

Rule 수정 대화상자

Rule 수정 대화상자

상단의 Rename 버튼을 클릭하면 실제로 이름이 변경됩니다. 혹시 잘못 변경을 하였다면 File > Undo 메뉴를 선택하여 원래대로 복원하면 됩니다.

다음의 주소에서 다운로드 받을 수 있습니다.

http://www.den4b.com/products/renamer

파일명을 쉽게 변경할 수 있는 프로그램 ReNamer 에 대해서 알아보았습니다.