autohotkey 를 이용한 키 한개로 히라가나, 카타카나 변경하기

오토핫키 프로그램은 사용자의 입력을 도와주는 프로그램으로써 반복 입력이나 조합 입력을 간단하게 도와줄 수 있고 그 이상 여러 가지 기능도 할 수 있는 오픈 소스 프로그램입니다.

일본어 입력 중 히라가나와 카타카나를 변경하려면 Ctrl+Caps Lock 와 Alt+Caps Lock 키를 따로 입력해야 합니다. ( 일본어 키보드 레이아웃에서는 한글 키 같은 변경 키가 있다고 합니다만 )

간단한 예제로 하나 만들어 보았는데 버그가 있을 수 있으며 저 또한 오토핫키를 어제 설치해 보았기 때문에 미숙한 부분이 많습니다.

우선 시스템 설정에 따라 오작동 할 수 있습니다 
제 시스템 기본 설정은 한국어와 일본어 입력 두 개가 사용할 수 있고 한국어가 우선순위 1번 입니다. ( 윈도우 8.1 에서만 해보았습니다 )

https://drive.google.com/file/d/0B_12i5pAjes8LUp4RW02SkJDQkk/view?usp=sharing

switch_Japanese.exe:
영어 -> 카타카나 -> 하라가나 -> 영어 순으로 순환되며 영어에서 한글 키를 누르면 한글 입력되며 한글 상태에서도 순환은 됩니다.

switch_Japanese_2.exe:
영어를 제외한 히라가나, 카타카나 변경만 되는 실행 파일입니다.

작동 키는 Shift+Space 키입니다. ( 사용된 아이콘은 첨부 파일 그리고 URL에 있습니다 http://www.iconarchive.com/show/alphabet-icons-by-ariil/Letter-E-icon.html )

; author  http://project-ap.blogspot.com/
;
hImg = icon\Ariil-Alphabet-Letter-H.ico
kImg = icon\Ariil-Alphabet-Letter-K.ico
eImg = icon\Ariil-Alphabet-Letter-E.ico
LS = 0
Menu, Tray, Icon, %eImg%

+Space::

If LS = 0
{
    Send, {vk15sc138} ; 한글 모드에서 일본어 언어 변경시 Caps Lock 켜지는 것 방지.
    PostMessage, 0x50, 0x02,0,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 다음 언어 사용
    Menu, Tray, Icon, %kImg% ; 카타카나 사용중이라는 트레이 아이콘 설정.
    Send !{CapsLock} ; 카타카나 활성키 Alt+Caps Lock 를 입력.
    ++LS ; 현재 입력 모드 기록.
    SetCapsLockState off
}
else if LS = 1
{
     Menu, Tray, Icon, %hImg% ; 히라가나 사용중임을 알리는 트레이 아이콘 설정.
    ++LS ; 현재 입력 모드 기록
    Send ^{CapsLock} ; 히라가나 활성키 Ctrl+Caps Lock 키 입력.
    SetCapsLockState off 
}
else
{
    PostMessage, 0x50, 0x02,0,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 다음 언어 사용
    Menu, Tray, Icon, %eImg% ; 영어 사용중임을 알리는 트레이 아이콘 설정.
    LS = 0; 현재 입력 모드 기록.
    SetCapsLockState off
}

SetCapsLockState off ; 모드 변경시 Caps Lock 끄기.
return

( SetCapsLockState off가 조건문 안과 밖에 둘 다 들어간 이유는 이론상으로는 밖에 둬서 한번 돌릴 때마다 끄게 하면 되는데 어느 한쪽에만 추가 시에는 안 꺼질 때가 있더군요, sleep 추가 시에는 프로그램이 이상해 지더군요 )

원래 히라가나/카타카나 만 생각하다 추가한 거라 switch case 로 만들면 더 많은 언어를 쉽게 추가할 수 있을 겁니다.

단독 실행 파일로 만들어 두었습니다. 클릭만 하시면 실행됩니다. 버그가 있을 수 있으며 Dllcall 을 사용하여 현재 언어 상태와 직접 변경으로 사용해야 하는데 오토핫키를 처음 사용해본 터라 기본적인 기능과 단축키로만 만들었습니다.

Comments