Water Quality Analysis 자세히보기

AUTOHOTKEY

오토핫키((AutoHoyKey) 비활성, 키보드입력(ControlSend, PostMessage)

Hi, 2016. 12. 13. 23:54




오토핫키 비활성 하는 방법!



오토 핫 키를 키고 다른 작업을 하고 싶나요? 


   비활성이란 말 그대로 활성화되지 않는 걸 말합니다.. 인터넷과 엑셀이 두 개다 모두 실행 중이라고 가정하고, 사용자가 인터넷을 사용 중일 때 엑셀은 비활성 상태에 있다고 볼 수 있습니다. Controlsend, ControlClick과 Postmessage 이 명령어를 이용하면 비활성화된 프로그램에 스크립트를 동작시킬 수 있죠. 이러한 조건이라면 엑셀에 오토 핫 키를 적용시킨 후 사용자는 인터넷 웹서핑을 즐길 수 있게 되는 겁니다. 일반적으로 비활성이 아닌 스크립트는 활성화 상태에서만 동작하게 되어있습니다. 보통 게임에서 많이들 사용하시죠. 장사를 할 때 오토 핫 키를 켜두고 웹서핑을 한다던가. 아니면 멀티 로더를 사용해 또 다른 캐릭터를 플레이하거나 그렇습니다. 여하튼 비활성이 가능하다면 그 활용성은 무궁무진하겠죠.



1. ControlSend


send 다들 아시죠? Send를 비활성화된 창에 명령한다고 생각하시면 됩니다. 저는 계산기를 가지고 실행해보겠습니다. 기본 명령어 틀은 아래와 같습니다.



ControlSend,,{키}, 창이름




Script


^1::  ; Ctrl+1을 누르면기 실행.


Controlsend,, {1}, 계산기    ; 계산기에 1을 입력

Controlsend,, {+}, 계산기    ; 계산기에 +을 입력

Controlsend,, {1}, 계산기    ; 계산기에 1을 입력

Controlsend,, {=}, 계산기    ; 계산기에 =을 입력

return




  스크립트 작성을 완료하고 계산기를 활성화를 하지 않은 후 Ctrl+1을 누르게 되면 1+1=가 차례되고 입력되고 결과는 2가 나타나는 것을 보실 수 있습니다. 







2. ControlClick



이 명령어 또한 Click 명령어의 비활성화 명령어라고 생각하시면 됩니다. 사용방법도 비슷하고요. 쉽게 따라 하실 수 있습니다.




ControlClick, X좌표 Y좌표, 창이름,, 버튼(Left,Right)




마우스 좌표 확인하는 방법은 전 글에 올려두었고, 바로 가시려면  여기를 클릭하시면 됩니다.




Script


^1::  ; Ctrl+1을 누르면기 실행.


ControlClick, x264 y194, 계산기,, Left    ;x264 y194에 왼쪽버튼 클릭 ( 저는 계산기 8 입니다 )

ControlClick, x340 y219, 계산기,, Left    ;x340 y210에 왼쪽버튼 클릭 ( 저는 계산기 * 입니다 )

ControlClick, x264 y194, 계산기,, Left    ;x264 y194에 왼쪽버튼 클릭 ( 저는 계산기 8 입니다 )

ControlClick, x390 y272, 계산기,, Left    ;x390 y262에 왼쪽버튼 클릭 ( 저는 계산기 = 입니다 )

return




비활성상태에서 마우스 클릭을 확인했고, 결과는 64가 나왔네요!



# ControlSend는 방향키가 입력되지 않으므로 방향키를 사용하고 싶다면 PostMessage를 사용해야 합니다.






3. PostMessage



PostMessage, message, wparam, Iparam, Control, 창이름



첫 번째로 message에 들어갈 명령어입니다. 너무 많아서 자주 쓰는 것만 언급하겠습니다.



두 번째로 wparam과 Iparam에 들어갈 명령어입니다. 이는 키마다 고유의 값이므로 아래 프로그램을 받아 간단하게 알아낼 수 있습니다.


param.exe





저는 1번키를 눌러봤습니다. 1의 wparam은 49이며, Iparam은 1090453505입니다.





세번째로 Control과 창 이름입니다. 이것도 아래 프로그램을 사용하면 쉽게 알아낼 수 있습니다.


control창이름.exe



Control에 들어갈 이름은 Button5이네요. 창이름은 계산기입니다. 이를 한꺼번에 나타낸다면





script


F7:: ; F7 시작

PostMessage, 0x100, 49, 1090453505, Button5, 계산기 ;계산기에 1을 입력한다.

return





스크립트를 키고 F7을 누를때마다 계산기에 1이 입력되는 걸 확인 할 수 있습니다. F7을 연타했더니 1이 많네요.





이로써 비활성으로 자주 쓰는 명령어들을 알아봤습니다. 


비활성의 명령어의 사용이 귀차니즘을 어느 정도는 없애줄 겁니다~