본문 바로가기

autohotkey

autohotkey 한영키상태와 무관하게 한글 혹은 영어로 입력하는 방법

컴퓨터 작업을 하다보면 반복되는 작업을 해야 하는 경우가 많죠..

계속 똑같이 작업하다보면 이런건 누가 좀 대신해줬으면 좋겠고.. 그런 일들이 있잖아요..

옛날에는 몬스터길들이기라는 게임을 자동으로 돌리려고 오토핫키로 이미지서치하는거 엄청 공부했었는데.. 결국 성공했었죠.. ㅋㅋ 나중에 게임안하게 되면서 더이상 관심밖이었는데..

얼마전부터 오토핫키로 반복적인 일들을 좀 줄여서 내 손목을 좀 보호해보자.. 하는 단순한 생각으로 오토핫키로 이것저것 재미있게 공부하며 만들어보고 있습니다.

 

근대.. 오토핫키로 작업하다 보면.. 현재 영어입력 상태인지 한글입력상태인지와 무관하게 특정 단어를 입력해야 하는 경우가 간혹 생기는데요.. 아이디/패스워드를 입력하는 경우가 그럴 수 있겠죠?

 

예를 들어서 아이디에 7goodhabit를 입력한다고 하면

오토핫키에서 아래와 같이 send를 통해서 문자를 출력한다고 하면

이런 식으로 코드를 작성하잖아요..

 

send 7goodhabit  라고 작업했다고 하면..

 

한영키가 영문입력상태일때는 7goodhabit 라고 출력이 되지만..

한영키가 한글입력상태일때는 7해ㅐ오뮤ㅑㅅ 라고 출력이 됩니다. 

 

이런 경우를 해결할 방법을 찾기 위해서 검색을 하다보니.. 좀 시차를 두고 2가지 방법을 찾았는데요..

첫번째 방법은 좀 복잡한 방법이구요..

두번째 방법은 너무 간단하더라구요..

 

저는 첫번째 방법을 응용해서 제가 원하는 결과를 만들어냈는데..  두번째 방법은 나중에 우연히 보게 되어서.. 너무 간단하게 해결하는 방법이 있더라구요.. 좀 허무하지만 그래도 나중에 혹시 다른 곳에 쓰일 수도 있을거 같고.. 혹시 또 저같이 복잡한 방법을 쓰시는 분이 있으시다면 간단하게 사용하시라고 공유해 봅니다.

 

첫번째 방법 : 내장함수를 이용하는 방법

 

먼저 이 3함수를 코드에 추가해 주시고...

IME_CHECK함수를 호출해서 사용하시면 되는데요..

제가 좀 편하게 사용하려고 아래처럼 함수를 만들어보았는데요..

이렇게 총 4개의 함수를 먼저 추가해주신후에

send, sendinput, sendraw중 어떤 것을 사용할지 결정하시고,

영어로 출력을 하시고 싶으시면

F_Send_ToEnK(0, 0, "7goodhabit")

이런 식으로 사용하시면 됩니다.

그럼 한글입력상태이든 영문입력상태이든 7goodhabit 가 출력됩니다.

또 무조건 한글만 출력하고 싶으신 경우에는 

F_Send_ToEnK(0, 1, "7goodhabit")

이경우에는 한글입력상태이든 영문입력상태이든 7해ㅐ오뮤ㅑㅅ 이렇게 출력이 되겠죠..

 

 

 

두번째 방법 : clipboard를 이용하는 방법

 

Clipboard := "7goodhabit"
SendInput ^v

출력을 원하는 문자를 클립보드에 저장해놓고.. 붙여넣기로 출력하는 방법입니다.

이렇게 하면 한글입력상태이든 영문입력상태이든 7goodhabit 가 출력됩니다.

 

심지어는 한글과 영문을 같이 쓸 수도 있어요..

Clipboard := "7goodhabit만세"
SendInput ^v

 

너무 간단하죠.. 진작에 이렇게 하면 될걸.. ㅋㅋ

혹시 저처럼 고생하시는 분 계실까바 공유해봅니다. ^^


근대.. 첫번째 방법도 두번째 방법도 모두 검색을 통해서 알게되었는데요..

출처를 제가 기억을 못하겠어서 못적었어요..

혹시라도 문제가 된다면 연락주시면 글 내리도록 하겠습니다.

 

감사합니다.

사랑합니다.

 

 

 

한영입력.ahk
0.00MB