본문 바로가기
반응형

 

 

 

프로그래밍을 하다보니 한글이 나오면 부득이 한영을 또 누르는 번거로움이 있어 개선해 보고자 만들었습니다.

아래와 같이 AutoHotKey를 이용해 한영을 쉽게 전환할 수 있도록 만들어봤습니다.

 

v2버전으로 만들어보았습니다.

 

당연히 v2를 설치하셔야 합니다. 링크 다운로드 버튼 누르고  v2.0 클릭하셔서 다운받고 설치하세요~

https://www.autohotkey.com/

 

 

 

왼쪽 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 
	}
	
}

 



반응형