Autohotkey 를 사용하여 윈도우를 자동화하는 경우 다양한 사례들에 부딪히게 되는데~ 오늘은 제가 최근에 겪은 사례와 그 해결 방법에 대해서 소개를 해 보렵니다.
저는 PC에서 카카오톡 PC 버전을 사용하고 있습니다. 로그인 설정에 따라서 다르겠지만 저는 카카오톡 PC 버전에 “잠금 모드로 로그인 설정”을 해 놔서~ 실행되면 아래의 그림들과 같이 잠금 모드로 실행되고 로그인 비밀번호를 입력해 줘야 PC 에서 카카오톡을 사용할 수 있습니다.
그러다 보니 매번 비밀번호를 입력하는 것이 귀찮아서 Autohotkey 를 사용하여 카카오톡 로그인 자동화를 만들어 보고 싶었습니다. 그런데 만들다 보니 카카오톡 비밀번호를 넣기 위해서는 비밀번호를 넣는 Edit3 control 이 활성화 될 때까지 기다려야 했습니다. 물론 조금 단순하게 그냥 sleep 을 오래줘서 기다리게 하는 방법도 있겠지만 Edit3 control 의 유무를 체크하게 하는 방법을 사용하고 싶었습니다.
그래서 Autohotkey 로 특정창의 특정 control 유무를 체크하는 방법을 알아보니 ControlGet 이라는 명령어가 있었습니다. ControlGet 의 메뉴얼은 아래 주소에서 확인할 수 있습니다.
https://autohotkey.com/docs/commands/ControlGet.htm
아래는 카카오톡 창에서 패스워드를 입력하는 Edit3 컨트롤이 사용 가능한지를 확인하는 코드 입니다.
ControlGet, OutputVar, Enabled, , Edit3, 카카오톡 ahk_exe KakaoTalk.exe
Msgbox % OutputVar
매뉴얼을 보시면 아시겠지만 위 코드에서 Enabled 부분이 SubCommand 인데 처음에는 Edit3 가 보이는지 안 보이는지를 체크 하려고 Visible SubCommand 를 사용 했습니다.
그런데 아래와 같이 사용자 눈에는 보이지만 초기에는 Visible 이 0 이고~
Edit3에 커서가 Focus 되서 뭔가 하나라도 입력이 되어 있는 경우에만 Visible 이 1 로 표시된다는 걸 알 수 있었습니다.
따라서 Edit3 컨트롤이 사용가능한지 아닌지를 판단하기 위해서는 Enabled SubCommand 를 사용하는게 맞는 것으로 보였습니다.
결론적으로 Edit3 컨트롤이 입력 가능 할 때까지 기다렸다가 암호를 입력하고 Enter 를 쳐서 로그인하는 코드는 아래와 같습니다. passWordStr 변수의 값을 자신의 PASSWORD 로 변경 후 사용해 보시기 바랍니다.
passWordStr:="PASSWORD"
Loop
{
ControlGet, OutputVar, Enabled, , Edit3, 카카오톡 ahk_exe KakaoTalk.exe
if OutputVar = 1
break
Sleep, 333
}
Sleep, 333
ControlSend, Edit3, %passWordStr%{Enter}, 카카오톡 ahk_exe KakaoTalk.exe
'programming language > Autohotkey' 카테고리의 다른 글
미드 보면서 영어 공부하기, 카카오 팟플레이어에서 네이버 사전으로 단어 검색 하기 (150) | 2019.02.08 |
---|---|
Autohotkey 어떤 버전을 설치 해야 하나… (146) | 2019.01.10 |
Autohotkey OCR 프로그램 Vis2 (using tesseract) (454) | 2018.11.28 |
Autohotkey 강좌, 이베스트증권 xingAPI 로 주식 현재가 가져오기 (439) | 2018.10.08 |
Autohotkey SendLevel 을 사용하여 다른 스크립트의 단축키 실행하기 (435) | 2018.09.22 |
Autohotkey 에서 Windows 10 OpenSSH 클라이언트 사용하기 (426) | 2018.09.18 |
Autohotkey 를 사용하여 붙여넣기 안되는 사이트에 자소서 붙여넣기 (32) | 2018.09.05 |
Autohotkey 포럼 flyingDman Simple count down up timer (0) | 2018.09.03 |
댓글