유니코드 버젼은 한글은 잘쳐지는데 한글상태로 영어를 치면 한글로 쳐져서..ㅠㅠ 전에 올린 스크립트로 해결은 되는데 가끔 정상적으로 안되는거 때문에빡쳐서 그냥 ANSI버젼으로 돌아왔음요...

ANSI버젼은 오히려 한글이 깨져서 쳐집니다.-_- 그래서 그걸 해결하는 함수임돠

sendH( sAnsiText )
{
    ;cafe.naver.com/autohotkey/199  by nnesori
    wStrLen:=DllCall("MultiByteToWideChar",uint,0, uint,0, str,sAnsiText  , uint,-1, str, 0, uint,0 )
    varSetCapacity(cu_WideText,wStrLen*2,0)
    DllCall("MultiByteToWideChar",uint,0, uint,0, str,sAnsiText  , uint,-1, str,cu_WideText, uint, wStrLen )
    nEventCount :=  wStrLen* 2 , VarSetCapacity( events, 28*nEventCount, 0 )
    ptrWCode:=&cu_WideText , p:=&events
    loop, % wStrLen-1
    {
        code:=*ptrWCode|( *(ptrWCode+1)<<8 ),ptrWCode+=2
        p:=NumPut(4,NumPut(code,NumPut(1,p+0 )+2,0,"UShort")+0)+16
        p:=NumPut(6,NumPut(code,NumPut(1,p+0 )+2,0,"UShort")+0)+16
    }
    result := DllCall( "SendInput", "uint", nEventCount, "uint", &events, "int",28)
    if( ErrorLevel or result < nEventCount )
    {
        MsgBox, [SendInput] failed: EL = %ErrorLevel% ~ %result% of %nEventCount%
        return, false
    }
    return, true
}

사용법({Enter}이런건 안먹힙니다.;;)

sendH("한글 메세지")

sendH(변수)

참고로 이함수는 네이버오핫카페에 nnesori님이 만듬


ps. ANSI버젼으로 넘어오니까 문제는 확실히 해결되서 좋은데 소스가 두배로 늘어남-_-ㅋ

+ Recent posts