반응형
프로그래밍을 하다보니 한글이 나오면 부득이 한영을 또 누르는 번거로움이 있어 개선해 보고자 만들었습니다.
아래와 같이 AutoHotKey를 이용해 한영을 쉽게 전환할 수 있도록 만들어봤습니다.
v2버전으로 만들어보았습니다.
당연히 v2를 설치하셔야 합니다. 링크 다운로드 버튼 누르고 v2.0 클릭하셔서 다운받고 설치하세요~
왼쪽 Ctrl + Alt + J :: 영어로만 변경
왼쪽 Ctrl + Alt + K :: 한글로만 변경, 한글의 경우 KOR이라는 툴팁이 따라다니도록 처리해놓았습니다.
누군가 혹시 CapsLock 으로 하고자 하나 안된다면 요청주시면 만들어 드릴께요~
#HotIf GetKeyState("LCtrl", "P")
;영어로 변경
LAlt & j:: {
imeState := fnGetImeState()
if(imeState = 1){
SendEvent( "{vk15sc138}" )
SetTimer( fnWatchCursor, 16 )
}
}
;한글로 변경
LAlt & k:: {
imeState := fnGetImeState()
if(imeState = 0){
SendEvent( "{vk15sc138}" )
SetTimer( fnWatchCursor, 100 )
}
}
#HotIf
fnGetImeState(){
;MouseGetPos &vx, &vy, &ahk_Id, &ClassNN
;imeState := DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", ahk_Id, "Uint")
;SendMessage (0x0283,0x005,"",ahk_id)
return fnImeCheck()
}
fnImeCheck(){
MouseGetPos &vx, &vy, &ahk_Id, &ClassNN
Return Send_ImeControl(ImmGetDefaultIMEWnd(ahk_Id),0x005,"")
}
Send_ImeControl(DefaultIMEWnd, wParam, lParam)
{
DetectHiddenWindows true
rst := SendMessage(0x283,wParam,lParam,,"ahk_id " DefaultIMEWnd)
return rst
}
ImmGetDefaultIMEWnd(hWnd)
{
return DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", hWnd, "Uint")
}
fnWatchCursor(){
MouseGetPos &x, &y, &winId, &controlId
imeState := fnGetImeState()
if(imeState = 1){
ToolTip "KOR", x+8, y+8
}else{
ToolTip
}
}
반응형