글쓴이 보관물: Toughman

반복적인 작업을 줄여주는 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를 이용하여 자동화하여 다른 의미 있는 것에 더 많은 시간을 쓸 수 있도록 하시기 바랍니다.

이케아 물리그(MULIG) 선반유닛

냉장고 옆쪽에 여러가지 물건이 바닥에 놓여있어 올려놓을 선반이 필요하였습니다. 이전에 소개한 휠리스는 좀 투박하여 실내에 놓기에 적절하지 않은 것 같았습니다. 이전에 조립식 선반을 사용했었는데 생각보다 약해서 다시 사고 싶지는 않았습니다. 이케아를 방문한 김에 찾아보니 마음에 드는 제품이 있었습니다. 그것이 바로 이케아 물리그(MULIG) 선반유닛이었습니다.

상자에 표기된 설명

상자에 표기된 설명

상자를 개봉해 보니 다른 제품과 마찬가지로 깔끔하게 포장되어 있었습니다.

상자 개봉 모습

상자 개봉 모습

비닐 포장을 뜯어 살펴보니 휠리스보다는 완성도와 마감이 훨씬 좋았습니다. 물론 가격차이가 있어서 그렇겠지만 고급스러운 느낌이 들었습니다.

포함되어 있는 나사와 부품

포함되어 있는 나사와 부품

역시나 많지도 적지도 않게 나사의 개수가 일치하였습니다. 아래쪽 다리를 고정나사를 제외하고 나머지는 동봉된 도구를 사용하면 됩니다.

다리를 고정한 모습

다리를 고정한 모습

조립이 어렵지는 않습니다. 조금 주의하셔야 하는 것이 중간에 있는 구멍이 약간 움푹하게 들어간 면이 있는데 그쪽이 바깥쪽이 되도록 하여 조립하시면 됩니다.

첫번째 선반을 추가한 모습

첫번째 선반을 추가한 모습

선반의 모양이 모두 동일하므로 구멍에 맞추어 나사만 조여주면 됩니다. 휠리스와 다르게 나사를 느슨하게 조일 필요가 없습니다.

프레임을 추가한 모습

프레임을 추가한 모습

네개의 기둥을 추가하고 선반을 구멍에 맞추고 나사를 조여주는 방식으로 조립하면 됩니다.

두번째 선반을 조립한 모습

두번째 선반을 조립한 모습

조립이 완성된 이케아 물리그(MULIG) 선반유닛

조립이 완성된 이케아 물리그(MULIG) 선반유닛

같은 방식으로 나머지 기둥 프레임과 선반을 추가하면 조립이 완료 됩니다. 필요에 따라 위쪽에 플라스틱으로 된 훅을 걸어 마무리 하면 됩니다.

플라스틱 훅을 걸어놓은 모습

플라스틱 훅을 걸어놓은 모습

조립은 완료되었지만 올려놓은 물건이 바로 보여지게 하고 싶지 않다면 커버를 씌워서 사용하면 됩니다.

커버에 부착된 설명

커버에 부착된 설명

커버를 씌운 모습

커버를 씌운 모습

커버 옆쪽에 주머니가 있어서 유용하게 사용할 수 있습니다. 위쪽에도 플라스틱 훅을 걸수 있도록 되어 있습니다. 재봉이 단단하게 되어 있어서 웬만한 무게로는 뜯어지지 않을 것 같았습니다. 커버를 씌워놓으니까 깔끔하게 물건을 올려놓을 수 있겠다는 생각이 들었습니다.

커버의 지퍼를 열어놓은 모습

커버의 지퍼를 열어놓은 모습

지퍼가 손잡이가 두개 있어서 양쪽으로 열수 있고 왼쪽에 커버 앞쪽을 접어서 고정할 수 있는 벨크로가 붙어있습니다. 별것 아닌 것 같은데 세심하게 신경쓴 느낌이 들었습니다. 그런데 커버를 씌우면 나타나는 단점이 사진에서 보는 것과 같이 맨 위쪽의 선반을 거의 사용할 수 없다는 것입니다. 위쪽 공간이 있기는 한데 높이가 있는 물건은 올려놓을 수 없고 낮은 것을 올려놓는다 해도 꺼내기가 쉽지 않아 보였습니다.

제품정보와 가격은 아래의 주소에서 확인하실 수 있습니다.

선반유닛 : http://www.ikea.com/kr/ko/catalog/products/60247904/

커버 : http://www.ikea.com/kr/ko/catalog/products/90250382/