독개

[Ahk] 비활성 입력 총정리

by #독개#

비활성 입력에는

PostMessage , Controlsend, Controlclick 이렇게 3개가 있다

 

Title이라고 적은 부분은

WindowSpy탐색

아무거나 적으면 된다

PostMessage (키보드)

 
PostMessage, 0x100, 27 , 65537 ,, ahk_exe On32.exe ;누름
sleep,100
PostMessage, 0x101, 27 , 65537 ,, ahk_exe On32.exe ;뗌

27과,65537은 ESC의 Param 값이다

위의 코드는 온라인삼국지2에 ESC키를 비활성으로 입력하는 예시다

 

PostMessage(마우스)

PostClick(FoundX,FoundY){
	lparam:=FoundX|FoundY<<16
 	PostMessage,0x201,1,%lparam%,,ahk_exe Code.exe ;누름
    	Sleep, 100
	PostMessage,0x202,0,%lparam%,,ahk_exe Code.exe ;뗌
}

마우스클릭은 좌표를 Param 16진수 값으로 계산해야 하므로 이렇게 함수를 정의해서 사용하는 것이 좋다

PostClick(100,100) 하게되면 Code.exe에 100,100을 클릭한다

Windowspy의 client의 마우스좌표다

 

ControlClick

ControlClick, x100 y100,ahk_exe Code.exe,,,,D,NA ;누름
sleep,100
ControlClick, x100 y100,ahk_exe Code.exe,,,,U,NA ;뗌

ControlClick, x39 y75,ahk_exe dm.exe,,,,NA ;누르고뗌
controlclick,x39 y75,ahk_exe dm.exe ;활성화시키면서클릭



;이렇게하면 함수로 적용가능

Mleft(39,75,"ahk_exe dm.exe")
Mleft(x,y,c)
{
    ControlClick, x%x% y%y%,%c%,,,,NA ;누름
}

x100 y100이 들어가는곳에 ClassNN값을 넣으면 좌표대신 ClassNN컨트롤을 클릭한다

좌표는 Spy의 Window를 하면된다 Client아니다

컨트롤클릭은 Coord모드의 영향을안받는다

 

ControlSend

InactiveKey(key) {
	ControlSend,Edit1,{%key% down},ahk_exe notepad.exe ;Edit1은 ClassNN
    sleep,100
	ControlSend,Edit1,{%key% up},ahk_exe notepad.exe ;Edit1은 ClassNN
	return
}

역시 함수로 만들어 사용하는것이 좋다

InactiveKey("a")

블로그의 정보

독한 개발자

#독개#

활동하기