안녕하세요.
오토핫키로 매크로를 만들어보려고 오토핫키 공부를 시작했습니다.
기본적으로 게임내 지정위치를 클릭하는 것부터 하나하나 해보려고 도전했으나,
미뮤, 녹스에서 전혀 안먹히네요.
원래 처음 구상에는 에뮬에서 지원하는 가상키를 이용하여 작업량을 줄일려는 목표가 있었으나,
Send, SendInput, PostMessage 등을 이용해도 전혀 가상키가 작동하지 않습니다.
그래서 그럼 직접 클릭하는 방법을 찾아 시도해보았습니다.
코드는 다음과 같습니다.
=====================
id := WinExist("Nox")
WinActivate, ahk_id %id%
sleep 500
;~ MouseClick, left, 745, 284
sleep 500
x := 745
y := 284
p := x|y<<16
PostMessage, 0x201, 1, %p%,, ahk_id %id%
PostMessage, 0x202, 0, %p%,, ahk_id %id%
sleep 200
ControlClick, x745, y284, "Nox"
sleep 200
PostMessage, 0x201, 1, %p%,, "Nox"
sleep 200
PostMessage, 0x202, 0, %p%,, "Nox"
sleep 200
PostMessage, 0x201, 1, %p%,, %id%
sleep 200
PostMessage, 0x202, 0, %p%,, %id%
sleep 200
========================
녹스관련 글을 찾아보니, PostMessage를 통해 비활성화 클릭도 가능하다는 글이 많습니다만,
저는 전혀 작동을 안하고 있습니다.
혹시나 하여 활성화도 시켜보고, 비활성화 상태에서도 해보았지만 안되네요...
제가 코드 작성에 실수한 부분이 있나요?
이미지서치도 고려 중이며, 스피드모드를 권장하시기에 스피드모드로 사용하고 있습니다.
고수님들의 조언 부탁드립니다.
저같은 경우는
아래 변수들을 모두 global 해주고
g_class=ahk_class Qt5QWindowIcon
g_class_exe=ahk_exe Nox.exe
g_title=녹스 안드로이드 앱플레이어
g_text=QWidgetClassWindow
g_control=Qt5QWindowIcon4
postmessage_click(vx,vy)
{
vx:=vx+10
vy:=vy+10
lparam:=vx|vy<<16
;msgbox,%lparam%
GuiControl, , MyListBox, Clicked:(%vx%,%vy%)||
postmessage,0x201,1,%lparam%,%g_control%, %g_title%
sleep,70
postmessage,0x202,0,%lparam%,%g_control%, %g_title%
;sleep,%clk_delay%
return
}
이렇게 사용하니 됩니다
postmessage_click(vx,vy)