티스토리 뷰

오토핫키 메크로 기능을 사용하다 보면, 텍스트 입력시 한/영 상태 때문에 외계어가 나오는 경우가 발생합니다. 외계어를 방지하기 위해서는 한/영 상태를 확인 후, 자동으로 한영 상태를 변환해주는 스크립트가 필요합니다. 구글링을 해 보니 필자 외에도 많은 분들이 같은 문제로 고민한 흔적이 보입니다. 다행스럽게도 한/영 자동 변환 스크립트는 구글링을 통해 쉽게 찾을 수 있었습니다. 스크립트와 함께 출처를 첨부합니다.




스크립트 출처

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("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint) 

}


WinGetActiveTitle, ExplorerTitle 

ime_status := % IME_CHECK("A") 

if (ime_status = "0") { 


} else { 

Send, {vk15sc138}


"0"의 의미: 한/영 상태가 "A"

"1"의 의미: 한/영 상태가 "한"


즉,

한/영 상태가 A(영문) 일 때, 아무것도 안 함

한/영 상태가 A(영문)이 아닐 때, 한영키 누름

댓글
Total
4,052,470
Today
1,451
Yesterday
3,762