방개
비밀번호를 잊어버리셨나요?

질문

Send로 영문 문자열 보낼 때, 한/영 전환키가 한글 모드로 되어 있으면 한글이 type된 것 처럼 나옵니다.

    • 글자 크기

안녕하세요,

예를 들어

F1::

Send, How are you? 

Return

 

이란 스크립트를 작성 했을 때,

 

언어가 영어로 되어 있지 않고 한글로 되어 있으면

 

F1을 누르게 되면 :  ㅙㅈ ㅁㄱㄷ ㅛㅐㅕ?

라고 나오네요. 

 

어찌보면 당연한 건데, copy and paste를 하면 이런 문제가 없는데, 어떤 이유에서 일까요?

 

아, 그리고 반대로 " Send, 한글 " 의 경우는 영어모드에건 한글모드에건 제대로 한글이 나옵니다.

 

감사합니다!

 

    • 글자 크기
댓글 2
  • 2020.5.5 13:48 댓글

    Send는 키 입력을 모방하는 것이기 때문에 당연히 한영 상태의 영향을 받습니다. 즉, '한글' 모드일때 영문 문장을 치면 키보드의 한글 글쇠가 쳐진 것 마냥 나오는 것은 지극히 정상입니다.

     

    그럼 왜 한글은 제대로 나오냐... 흔히 '유니코드'라고 말하는, 컴퓨터에서 각 나라의 언어를 '번호'와 '글자'를 연결해 놓은 일종의 표가 있습니다.

    그 표에서 한글은 'ㄱ, ㄴ, ㅏ, ㅑ'등과 같이 초중종성이 따로 있기도 하지만, '가, 나, 다'처럼 완성된 글자 또한 있습니다.

    지금 보시는 이 '한글'을 표현하는 방법이 적어도 유니코드를 참고한다면,

    오토핫키는 이 '완성된 글자'를 글자대로 보낼것입니다.

     

    한글로 된 아주 긴 문장을 입력되게 하신 후 잘 지켜보시면..

    예를 들어서 "안녕하세요"를 입력되게 하신 후 잘 지켜보시면,

     

    우리가 키보드로 치는 것마냥

    ㅇ → 아 → 안 → 안ㄴ → 안녀 → 안녕 → 안녕ㅎ → 안녕하 → 안녕핫 → 안녕하세 → 안녕하셍 → 안녕하세요

    처럼 입력되는게 아니라,

    안 → 안녕 → 안녕하 → 안녕하세 → 안녕하세요

    처럼... 글자 단위로 입력되는걸 볼 수 있습니다.

     

    즉, "키보드에 없는 글쇠"로 인식하여서(키보드엔 'ㄱ'과 'ㅏ'는 있지만, '가'는 없기 때문이죠)

    한 글자씩 입력을 하기 때문에, 한/영 상태의 영향을 받지 않는 것입니다.

     

     

     

    다시 본론으로 돌아가서.. 결론적으로 해결할 수 없는 문제냐 하면 그건 아닙니다.

    단순하게 생각해서, "입력을 하기 전 한/영 상태가 '한글'이라면, 한/영 상태를 '영어'로 바꿔주면 되기 때문입니다.

    이걸 해주는 함수는 인터넷에 많습니다. "오토핫키 한영전환"등으로 검색하시면 많으나..

     

    제가 만든 한글 라이브러리에 관련된 기능이 있으니,

    이걸 이용하셔도 됩니다.

    아래 스크립트는 제가 만든 한글 라이브러리에 있는

    '한/영 상태를 한글 혹은 영어로 만들어주는' 함수인 한영변환()을 이용한 예제입니다.

     

    #include EveryHangul.ahk
    
    한영변환("영")
    Send, Fine Typing :)

     

  • 프날님께
    오토HK글쓴이
    2020.5.7 08:58 댓글

    아, 너무 감사합니다!

댓글 달기

서버에 요청 중입니다. 잠시만 기다려 주십시오...