오토핫키 메크로 기능을 사용하다 보면, 텍스트 입력시 한/영 상태 때문에 외계어가 나오는 경우가 발생합니다. 외계어를 방지하기 위해서는 한/영 상태를 확인 후, 자동으로 한영 상태를 변환해주는 스크립트가 필요합니다. 구글링을 해 보니 필자 외에도 많은 분들이 같은 문제로 고민한 흔적이 보입니다. 다행스럽게도 한/영 자동 변환 스크립트는 구글링을 통해 쉽게 찾을 수 있었습니다. 스크립트와 함께 출처를 첨부합니다.
스크립트 출처
http://autohotkey.kro.kr/220797742200
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("imm32ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
}
WinGetActiveTitle, ExplorerTitle
ime_status := % IME_CHECK("A")
if (ime_status = "0") {
} else {
Send, {vk15sc138}
}
“0”의 의미: 한/영 상태가 “A”
“1”의 의미: 한/영 상태가 “한”
즉,
한/영 상태가 A(영문)일 때, 아무것도 안 함
한/영 상태가 A(영문)이 아닐 때, 한영키 누름