여기저기 뒤져서 이것저것 합쳐 놓음

누가 올려달래서;;


1. esc 누르면 한글일 경우 esc + 영어로 전환 / 영어일 경우 걍 esc

2. Capslock 그냥 눌럿다 떼면 esc(한글일 경우 영어 전환) / 다른 키랑 같이 누르면 Ctrl

3. 양쪽 shift 같이 누르면 capslock


capslock + shift 이런 기능키 조합도 제대로 ctrl로 작동하는거 확인하긴했음

아래꺼 긁어다가 .ahk 확장자로 저장하고 실행하면 될듯

머 제대로 안되면 일단 제 책임은 아님ㅇㅇ;





; Map Capslock to Control ; Map press & release of Capslock with no other key to Esc ; Press both shift keys together to toggle Capslock *CapsLock:: Send {Blind}{LControl down} return *Capslock up:: Send {Blind}{LControl up} if A_PRIORKEY = CapsLock PRESS_ESC_ACTION() else Send {Blind}{LControl up} return ToggleCaps(){ ; this is needed because by default, AHK turns CapsLock off before doing Send SetStoreCapsLockMode, Off Send {CapsLock} SetStoreCapsLockMode, On return } LShift & RShift::ToggleCaps() RShift & LShift::ToggleCaps() ; whenever input esc, always set the language to English $Esc:: PRESS_ESC_ACTION() return /* IME check */ 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) } /* pressEscAction */ PRESS_ESC_ACTION() { if(IME_CHECK("A")) Send, {VK15} Send, {Esc} return }