이번 포스팅에서는 PC 카카오톡 메시지가 왔을 때 마우스 클릭 없이 카카오톡 창을 여는 스크립트를 짜 보려고 한다.
메시지가 왔을 때 마우스를 움직여서 알림창을 클릭하고, 톡 창이 뜨면 내용을 타이핑해 넣고 엔터를 쳐서 전송하는 게 일반적인 방법이다. 그런데 이게 생각보다 귀찮다. 특히 키보드에 양손을 올려두고 업무에 집중하고 있을 때가 그렇다. 그래서 어떻게 하면 카카오톡을 쉽게 실행시킬 수 있을지 고민하다가 이런 방법을 찾았다.
1. Run 명령어를 이용해 카카오톡을 실행시키는 방법
가장 직관적인 방법이다. 미리 짜둔 메인 스크립트에 아래 세 줄을 추가해보자.
#k:: ; win + K 를 누르면
run, KakaoTalk.exe, C:\Program Files\Kakao\KakaoTalk\ ; 카카오톡을 실행해라.
return ; 명령어 종료
당연히 작동한다. 그런데 희한하게도 이 방법을 쓰면 카카오톡 트레이 아이콘을 더블클릭하는 것보다 훨씬 느리다. 트레이 아이콘 더블클릭은 딜레이 없이 카카오톡 창이 바로 뜨는데, 위의 핫키를 쓰면 1~2초 정도 딜레이가 있어서 내 경우에는 쓰기가 어려웠다.
그래서 아래와 같은 방법을 생각해보았다.
2. 카카오톡 트레이 아이콘을 더블 클릭하여 실행시키는 방법
오토핫키를 이용하면 마우스 커서의 움직임과 클릭까지 제어할 수가 있다. 따라서 클릭하는 좌표만 잘 설정하면 트레이 아이콘을 더블 클릭하는 것이 어려운 일이 아니라는 생각이 들었다. 그런데 이게 가능하려면 한 가지 전제 조건이 필요하다.
(1) 이 방법을 위한 전제조건
이 방법을 쓰려면 카카오톡 아이콘이 윈도우 트레이의 늘 같은 위치에 있어야 한다. 그래서 나는 다른 아이콘들은 모두 없애고, 볼륨 아이콘과 카카오톡 아이콘만 트레이에 두었다.
(2) 좌표를 알아내는 방법
오토핫키를 설치하면 AU3_spy.exe 프로그램이 생긴다.
실행시키면 위와 같은 창이 뜬다. 마우스 커서를 움직여보면 두 번째 칸인 Mouse Position 칸의 숫자가 변화하는 것을 알 수 있다.
Absolute는 좌표의 절댓값, 즉 모니터 왼쪽 위 꼭짓점을 (0,0)으로 둔 좌표이다.
Relative는 좌표의 상대값, 즉 실행된 창의 왼쪽 위 꼭짓점을 (0,0)으로 둔 좌표이다.
이 AU3_spy.exe를 실행시키는 핫키를 메인 스크립트에 넣어두고 필요할 때마다 실행시키면 아주 편리하다. 좌표를 알아낼 수도 있고, 현재 실행되고 있는 창의 이름을 알아내기도 편하다.
(3) 특정 좌표를 클릭하는 스크립트 짜기
위의 세 줄 대신 아래의 스크립트를 넣어보자. 단축키는 같지만 내용이 바뀌었으니 주의해서 붙여 넣자.
**** 시작 - 이 행은 스크립트에 포함시키지 않는다 ****
#k:: ; win + k 를 누르면
CoordMode, Mouse, Screen ; 좌표의 모드를 스크린 전체로 바꾸고
MouseClick,left, 1734, 1072, 2 ; (1732, 1072) 위치에 왼쪽 더블클릭을 하고
sleep, 100 ; 0.1초 기다린 뒤
Ifwinexist, ahk_exe KakaoTalk.exe ; 만약 카카오톡 창이 존재하면
{
CoordMode, Mouse, relative ; 좌표 모두를 상대 좌표로 바꾸고
Winactivate, ahk_exe KakaoTalk.exe ; 카카오톡 창을 활성화한 뒤
Winwaitactive, ahk_exe KakaoTalk.exe ; 카카토톡 창이 활성화될 때까지 대기
Mouseclick, left, 35, 135 ; 카카오톡 창을 기준으로 (35, 135) 에 왼쪽 클릭 한 번
Sleep, 50 ; 0.05초 기다린 뒤
Mouseclick, left, 180, 180 ; (180, 180)에 왼쪽 클릭 한 번
}
else ; 트레이 아이콘 더블 클릭 후에도 카카오톡 창이 실행되지 않았으면
{
Msgbox, 0, ,No Kakao, 0.5 ; "No Kakao"라는 창을 0.5초간 띄우고
sleep, 1000 ; 1초 기다린 뒤
run, KakaoTalk.exe, C:\Program Files\Kakao\KakaoTalk\ ; run 명령어로 카카오톡을 실행
}
return
**** 끝 - 이 행은 스크립트에 포함시키지 않는다 ****
이 스크립트는 카카오톡이 백그라운드에서 실행 중이면 트레이 아이콘 더블클릭으로 카카오톡을 빠르게 실행하고, 그렇지 않을 때에는 카카오톡을 새로 실행시키는 스크립트이다.
(4) CoordMode에 대한 간략한 설명
오토핫키를 쓰다 보면 coordmode를 변환시켜야 할 때가 있다. Mode에는 크게 relative, screen, client가 있다. 이 중 relative, screen을 제일 많이 쓴다.
모드를 따로 설정하지 않으면 relative로 되어 있다. 즉 relative가 디폴트이다. 모드를 relative로 해두면 현재 활성화된 창을 기준으로 상대 좌표를 측정한다.
모드를 screen으로 설정하면 무슨 창이 실행되어 있든지 상관없이 모니터 왼쪽 위 꼭짓점을 (0,0), 오른쪽 아래 꼭짓점을 마지막 좌표로 읽는다.
위의 스크립트에서 첫 줄에 모드를 스크린으로 바꾼 것이 이제 이해가 갈 것이다. 저렇게 해두고 mouseclick 명령어를 사용해야 지금 무슨 창에서 작업을 하고 있든 관계없이 트레이 아이콘으로 커서가 움직여 클릭할 수 있다
그런데 카카오톡이 실행되고 난 뒤에는 다시 모드를 relative로 바꾸었다. 그리고 (35, 135) 좌표를 한 번 클릭하는 스크립트를 한 줄 넣었다. 카카오톡 창의 왼쪽 위 꼭짓점을 (0,0)이라고 했을 때 (35, 135)에 있는 것은
바로 위에 보이는 말풍선 아이콘의 좌표이다. 저걸 한 번 클릭해줘야 카카오톡에서 대화창 목록이 뜬다.
그리고 (180, 180) 좌표를 한 번 클릭해서 대화창 목록 근처로 커서를 옮겨두어서 대화창 선택을 조금이라도 편안하게 할 수 있도록 고안했다.
3. 카카오톡 알림창을 빠르게 클릭하는 방법
위의 부분을 어느 정도 이해했다면 이 부분은 아주 간단하다.
**** 시작 - 이 행은 스크립트에 포함시키지 않는다 ****
^BackSpace:: ; ctrl + backspace 를 누르면
CoordMode, Mouse, Screen ; 좌표 모드를 screen으로 바꾸고
Mouseclick, left, 1871, 993 ; (1871, 993) - 대략적인 카카오톡 알림창 위치 - 를 왼쪽 클릭
return
**** 끝 - 이 행은 스크립트에 포함시키지 않는다 ****
위의 스크립트를 메인 스크립트에 넣어두고 카카오톡 알림창이 떴을 때 누르면 마우스 커서가 해당 위치로 옮겨지는 동시에 클릭을 한 번 하게 된다. 그러면 바로 대화창이 뜨고 바로 타이핑을 할 수 있는 상태가 된다.
'IT 관련 팁 > 오토핫키 Autohotkey' 카테고리의 다른 글
오토핫키 - 마우스 커서 위치를 저장하고 그 위치로 되돌리기 (3) | 2022.03.16 |
---|---|
오토핫키 - 볼륨 조절 쉽게 하기 (2) | 2022.03.15 |
오토핫키 - 메시지 박스 활용하기(확인해야 사라지는 박스, 그냥 사라지는 박스) (2) | 2022.03.12 |
오토핫키 - Alt+F4 다른 키로 키맵핑하여 프로그램 종료 쉽게 하기 (2) | 2022.03.11 |
오토핫키 - 다른 스크립트를 실행할 메인 스크립트 만들기 (2) | 2022.03.10 |