※ 참고로 이 글은 AutoHotkey_L 유니코드 버젼에서만 적용됩니다. 유니코드버젼이 아니신 분들은 sendH함수를 사용하세요~

예전에 만든 함수가 너무 구려서 그나마 쓸만하게 수정해서 올립니다.

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)
}
sendE(sAnsiText)
{
 ret := IME_CHECK("A")
 if %ret% <> 0
 {
  Send {vk15sc138}
  SendInput %sAnsiText%
  Send {vk15sc138}
  return
 }
 SendInput %sAnsiText%
 return
}

사용법

sendE("메세지")

sendE(변수)

원리는 보면 알겠지만 걍 무식하게 한영 상태 체크하고 한타면 영타로 바꾼 뒤 텍스트를 입력하는 겁니다.

+ Recent posts