여기저기 뒤져서 이것저것 합쳐 놓음
누가 올려달래서;;
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
}
오 고마워 테스트해볼게
난 하루이틀 써보니까 특별히 이슈 없던데 ㄱㅊ음?
일단 잘 됨. 고마워~~
근디 캡스락은 걍 컨트롤에 박으면 되는거 아님? 차피 잘 안쓰는데
컨트롤도 그대로 컨트롤처럼 써야지
ㅁㅈ..컨트롤도 그냥 컨트롤로 쓰고 싶엇음