오토핫키 한영 키 코드 - otohaski han-yeong ki kodeu

티스토리 뷰

혹시 이런 방법이 있을까? 해서 고수들의 글들을 살펴보다가 마음에 드는 글이 있어서 출처를 남기면서 공유해 봅니다. 

물론 실습도 해서 실제 실행이 되는지 검증하는 것이 가장중요한 일이겠지요.

하늘 아래 새로운 것은 없다...? 라는 말처럼 참 많은 정보가 있는데, 우리가 찾아서 쓰지 못하는 것 같네요.

다시금 이런저런 방법이 안될때는 검색신의 힘을 빌어 멋지게 해결하면 왜이리 마음이 뿌듯한지....

정보는 공유하면 더 발전하는 것이 신념으로 남길 기대하면서 내용을 공유해 볼게요.

더보기

IME_CHECK(WinTitle) {
    WinGet,hWnd,ID,%WinTitle% 
    Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"")
}
Send_ImeControl(DefaultIMEWnd, wParam, lParam) {
    DetectSave := A_DetectHiddenWindows
    DetectHiddenWindows,ON 
    SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd% 
if (DetectSave <> A_DetectHiddenWindows) 
    DetectHiddenWindows,%DetectSave% 
    return ErrorLevel 
}

ImmGetDefaultIMEWnd(hWnd) 

return DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
}

WinGetActiveTitle, ExplorerTitle
ime_status := % IME_CHECK("A")
if (ime_status = "0")
{

}
else
{
Send, {vk15sc138}
}

출처 : //kin.naver.com/qna/detail.nhn?d1id=1&dirId=10405&docId=363518477&qb=7Jik7Yag7ZWr7YKkIO2VnOyYge2CpA==&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0

실행이 잘 되는지는 화면 캡쳐 후 다시 올려볼게요~~

Autohotkey 를 사용하다보면 한글 키보드에만 있는 특수키들을 사용하여 단축키를 만들고 싶은 경우가 있습니다. 이러한 경우엔 당연히 특수키에 대한 키코드를 알아야 됩니다. 그래서 오늘은 키코드 확인 하는 방법에 대해서 소개해 보려 합니다.

요즘에는 한자를 사용할 일이 그렇게 많이 없다 보니 스페이스바 왼쪽 옆에 있는 한자키를 거의 사용을 하지 않습니다. 그래서 저는 한자키를 다른 키와 조합해서 Autohotkey 로 단축키를 만들어서 사용하곤 합니다. 키코드를 알기 위해서는 Autohotkey KeyHistory 를 보면 되는데 KeyHistory 는 두가지 방법으로 접근 가능합니다.

1. 코드를 사용한 접근 방법

아래의 Autohotkey 코드를 실행 시킨후에 한자 키를 몇 번 누르고 h 버튼을 누릅니다.

h:: ; KeyHistory 실행 단축키 : h

KeyHistory

return

esc::exitapp ; 종료 : esc

그러면 다음과 같이 KeyHistory 창이 나타나게 됩니다. 저는 위 코드를 실행 하고~ 한자키를 3 번 누른 후에 h 버튼을 눌러서 KeyHistory 창을 나타나게 했습니다. 아래 그림에서 확인할 수 있는 바와 같이 제가 사용하는 키보드에 한자키의 키코드는 VK 19, SC1F1 입니다. 이 중에서 SC1F1 을 단축키로 설정 하면 되는 것입니다.

아래는 한자키와 그 옆에 있는 Alt 키를 사용하여 단축키를 설정해 본 것입니다. 아래 Autohotkey 코드를 실행 한 후에 왼쪽 Alt 키와 한자키를 동시에 누르면 메모장이 실행 되는 것을 확인할 수 있습니다.

~LAlt & sc1F1::

run notepad.exe

return

2. 윈도우 작업바에서 현재 실행되고 있는 오토핫키 아이콘에서 오른쪽 클릭을 하고 나오는 메뉴에서 Open 을 클릭합니다.

그럼 다음과 같은 창이 나타나는데 위에 메뉴 중에 View -> Key History And Script Info 를 클릭하거나 Ctrl + K 를 눌러서 KeyHistory 창을 실행 시킬 수 있습니다.

키코드를 알아내고자 하는 키를 몇 번 누른 후에 F5 키를 눌러서 새로고침을 하면 1 번에서의 결과와 마찬가지로 키코드를 알아낼 수 있습니다.

스크립트에 대한 설명:

본 스크립트는 Ctrl + 한영키를 누르면 무조건 영어 입력모드, Alt + 한영키를 누르면 무조건 한글 입력모드가 되도록 하는 스크립트입니다. 물론 그냥 한영키는 건드리지 않았으므로 원래기능대로 토글링이 될 것입니다.

미리 말씀드리자면, 이곳(www.autohotkey.pe.kr)의 ImMBR 님의 포스트를 보고 개감동 먹은후 바로 카피&페이스트해서 만든 것입니다. ImMBR님의 포스트에 또 다른 원저작자가 있는 것으로 표현되었는데, 제 짧은 능력으로는 누구인지 찾을 수 없었습니다. 불펌복제 죄송합니다. ImMBR님 등의 원작자분들께서 오리지널로 짜서 올려주신다면 제가 언제든 삭제하고 싶은 마음입니다. ^^;

암튼, 저는, IE 주소창 등등 수많은 텍스트 입력창을 만날 때마다 '과연 지금 키보드를 치면 한글이 입력될지 영문이 입력될지?' 방황하는 나 자신이 너무도 싫었고, 물경, 이런 저질 IME시스템과 오나전 오타양상 두벌식과 단순비교 및 소팅 불가형 확장완성형 코드체계와 우측 Ctrl/Alt가 기본셋(종류1)에서 작동하지 않는 등등의 악마같은 상황들이 너무 어엿하게 자리잡고 있는 대한민국이 너무나도 싫어지다가 급기야는 한국을 떠나고 싶어져서 하와이에 가버렸다가, 칠레지진발 쓰나미를 쳐맞을번하고 정신을 차리고 돌아왔는데... 뭐 암튼간에 저는 그냥 "니가 어떤 상태든간에 난 지금 영어칠꺼다." 하고선 IE 주소입력창에 영문 url을 타이핑하고 싶었다는 얘깁니다.

구글 버즈 넔두리했던 이러한 저의 고민에 제 친구 시니컬수박은 "auto hot key"이라는 짧은 답을 주었고, 바로 검색 후 이곳에 도착한 저는 신세계를 만났습니다. '어디부터 뒤적여야 할까?' 하면서 한시간 정도 들여다보다가, 제가 원했던 기능이 그냥 완성되어 있는 ImMBR 님의 글을 발견했습니다.

//www.autohotkey.pe.kr/bbs/board.php?bo_table=freeboard&wr_id=22&page=13

저는 씽크패드를 사랑하기에, 그리고 제 기계들이 Apps키나 우측윈도키가 없는 경우도 많기에, 핫키를 바꿔야 했습니다. 그래서 평소에 꿈꿔오던 Ctrl / Alt + 한영전환키.. 로 바꿨습니다. 그리고 주석 달았습니다. 그게 제가한 짓. 끝입니다.

감사합니다. 실컷 욕해주세요. 수정할 부분 좀 많이 알려주시고요. ( _ _)

SnakeFoot : 지금 이글 쓰다가 적용해보니, 웹페이지 상 에디터 내부에서는 잘 안먹네요. 뭐암튼, 더 오래 잡고 쓰다보면 개성의 여지가 여기저기 있어서 개선도 하게 되고 그렇겠지요 ^^;

<--------------------------------------------- AHK 스크립트 내용 --------------------------------------------->

IME_CHECK(WinTitle)

{

WinGet,hWnd,ID,%WinTitle%

Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"")

}

Send_ImeControl(DefaultIMEWnd, wParam, lParam)

{

DetectSave := A_DetectHiddenWindows

DetectHiddenWindows,ON

SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd%

if (DetectSave <> A_DetectHiddenWindows)

DetectHiddenWindows,%DetectSave%

return ErrorLevel

}

ImmGetDefaultIMEWnd(hWnd)

{

return DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)

}

!vk15sc1F2:: ; I want Alt-[Eng/Han] key to be "Absolutely Hangul(Korean)" mode key. I hate toggling :(

ret := IME_CHECK("A")

if %ret% = 0 ; 0 means IME is in English mode now.

{

Send, {vk15sc138} ; Turn IME into Hangul(Korean) mode.

}

return

^vk15sc1F2:: ; I want Ctrl-[Eng/Han] key to be "Absolutely English" mode key. I hate toggling :(

ret := IME_CHECK("A")

if %ret% <> 0 ; 1 means IME is in Hangul(Korean) mode now.

{

Send, {vk15sc138} ; Turn IME into English mode.

}

return

출처 : //www.autohotkey.co.kr/cgi/board.php?bo_table=script&wr_id=357

Toplist

최신 우편물

태그