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

Languages: [EN] English | [KO] 한국어

AutoHotkey to switch between Hiragana and Katakana with a single key
Autohotkey 를 이용한 키 한개로 히라가나, 카타카나 변경하기

Overview 소개

When typing in Japanese on a keyboard, you need to press Ctrl+Caps Lock and Alt+Caps Lock separately to switch between Hiragana and Katakana. On Japanese keyboards, there is a key called かな (Kana), similar to the Hangul/English toggle key on a Korean keyboard. I have written an AutoHotkey script to unify this into a single key.

키보드 에서 일본어 입력 중 히라가나와 카타카나를 변경하려면 Ctrl+Caps Lock 와 Alt+Caps Lock 키를 따로 입력해야 합니다, 일본어 키보드 에서는 かな (Kana) 라는 한글 키보드의 한/영 전환 같은 키가 따로 있습니다. 이를 키 한개로 통합하는 Autohotkey 코드를 작성해 보았습니다.

Notice 안내

This is a simple sample, so it may lack convenience and may not work properly depending on the environment.
The development environment is configured to use only two input languages: "Korean" and "Japanese", with "Korean" as the first priority.

간단한 샘플로 만든 것이기에 편의성이 부족하고 사용환경에 따라 버그나 작동을 하지 않을 수 있습니다.
개발 환경은 "한국어"와 "일본어" 입력 "두 개"만 사용할 수 있고 "한국어가 우선순위 1번" 입니다.

How to use 사용 방법

Switch Japanese Download

Switch Japanese 다운로드

switch_Japanese.exe: English -> Katakana -> Hiragana -> English cycle, and when the Hangul key is pressed in the English mode, it will input Hangul. The cycle also works while in Hangul mode.

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

switch_Japanese_2.exe: An executable file that only switches between Hiragana and Katakana, excluding English.

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

Activation key: Shift+Space
Icon source used: iconarchive

작동 키: Shift+Space
사용된 아이콘 출처: iconarchive

Source code 소스 코드

  1. ; author  http://project-ap.blogspot.com/
  2. ; Commercial use is not allowed
  3. ; 상업적 사용 불가
  4. hImg = icon\Ariil-Alphabet-Letter-H.ico
  5. kImg = icon\Ariil-Alphabet-Letter-K.ico
  6. eImg = icon\Ariil-Alphabet-Letter-E.ico
  7. LS = 0
  8. Menu, Tray, Icon, %eImg%
  9. +Space::
  10. If LS = 0
  11. {
  12.     Send, {vk15sc138} ; Prevent Caps Lock from turning on when switching to Japanese language mode in Hangul mode.
  13.     Send, {vk15sc138} ; 한글 모드에서 일본어 언어 변경시 Caps Lock 켜지는 것 방지.
  14.     PostMessage, 0x50, 0x02,0,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. Use the next language
  15.     PostMessage, 0x50, 0x02,0,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 다음 언어 사용
  16.     Menu, Tray, Icon, %kImg% ; Set the tray icon to indicate Katakana is in use.
  17.     Menu, Tray, Icon, %kImg% ; 카타카나 사용중이라는 트레이 아이콘 설정.
  18.     Send !{CapsLock} ; Input the Katakana activation key Alt+Caps Lock.
  19.     Send !{CapsLock} ; 카타카나 활성키 Alt+Caps Lock 를 입력.
  20.     ++LS ; Record the current input mode.
  21.     ++LS ; 현재 입력 모드 기록.
  22.     SetCapsLockState off
  23. }
  24. else if LS = 1
  25. {
  26.     Menu, Tray, Icon, %hImg% ; Set the tray icon to indicate Hiragana is in use.
  27.     Menu, Tray, Icon, %hImg% ; 히라가나 사용중임을 알리는 트레이 아이콘 설정.
  28.     ++LS ; Record the current input mode.
  29.     ++LS ; 현재 입력 모드 기록
  30.     Send ^{CapsLock} ; Input the Hiragana activation key Ctrl+Caps Lock.
  31.     Send ^{CapsLock} ; 히라가나 활성키 Ctrl+Caps Lock 키 입력.
  32.     SetCapsLockState off
  33. }
  34. else
  35. {
  36.     PostMessage, 0x50, 0x02,0,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. Use the next language.
  37.     PostMessage, 0x50, 0x02,0,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 다음 언어 사용
  38.     Menu, Tray, Icon, %eImg% ; Set the tray icon to indicate English is in use.
  39.     Menu, Tray, Icon, %eImg% ; 영어 사용중임을 알리는 트레이 아이콘 설정.
  40.     LS = 0; Record the current input mode.
  41.     LS = 0; 현재 입력 모드 기록.
  42.     SetCapsLockState off
  43. }
  44. SetCapsLockState off ; Turn off Caps Lock when changing modes.
  45. SetCapsLockState off ; 모드 변경시 Caps Lock 끄기.
  46. return

Source code: explain 소스 코드: 설명

  • Using SetCapsLockState off on one side may sometimes cause it not to turn off.
  • It did not work properly when using sleep.
  • Since I only thought about Hiragana/Katakana, if I use a switch case, it would be easier to add more languages.
  • By using DllCall to directly change and check the current language state, it can be used more reliably and stably.
  • This is the first code I wrote to learn AutoHotkey, so I made it with basic functions and hotkeys only.
  • SetCapsLockState off가 한쪽에만 추가 시 안 꺼질 때가 있습니다.
  • sleep 사용시 정상 작동 하지 않았습니다.
  • 히라가나/카타카나 만 생각하다 추가한 거라 switch case 로 만들면 더 많은 언어를 쉽게 추가 가능합니다.
  • Dllcall 을 사용하여 현재 언어 상태와 직접 변경으로 사용하면 더 확실하고 안정적이게 활용 가능
  • 오토핫키를 익히기 위해 처음 작성한 코드여서 기본적인 기능과 단축키로만 만들었습니다.

Comments