winget,hwnd,,하스스톤
winget,hwnd2,,Battle.net
F1::
pos := 544|264 << 16
postmessage,0x201,1,%pos%,,ahk_id %hwnd%
postmessage,0x202,0,%pos%,,ahk_id %hwnd%
return
F3::
pos := 77|133 << 16
postmessage,0x201,1,%pos%,,ahk_id %hwnd2%
postmessage,0x202,0,%pos%,,ahk_id %hwnd2%
return
F2::
exitapp
여러가지 해보니 postmessage가 안되는 프로그램들이 몇몇 있더라구요
그래서 무슨 경우에 안되는 것인가 찾아보고있는데
위에는 블리자드 게임인 하스스톤과 배틀넷 클라이언트에서의 적용유무를 실험하기 위한 것입니다.
배틀넷 클라이언트에선 해당 좌표의 lbutton 업다운이 되는데
하스스톤 클라이언트에선 아얘 먹통이네요
안되는 블리자드 게임들에서의 결과는 각자 제각각입니다
월드오브워크래프트의 경우 비활성 상태의 해당 창에 마우스커서를 가져갈시 해당창 전체범위에서 클릭이됩니다
오버워치의 경우 같습니다.
하스스톤의 경우 아얘 비활성상태에서 클릭을 안합니다.
처음에는 좌표를 못받아오는걸로 생각만했는데 하스스톤의 경우 또 다르네요
외국포럼들을 검색해봤는데
특정 프로그램중 외부프로그램으로 받은 hook을 자체에서 변조시켜버리거나
매크로를 막으려고 픽셀정보에 대한 래퍼런스를 0,0으로 뿌려버려 좌표를 못읽게 하는 경우가 있는것 같더라구요
이런경우엔 그냥 단순 mouse_event로밖에 못하는것인지 알고싶습니다.
컨트롤값에대한 문제가 아니니 이 답변은 정중하게 사양하겠습니다.
오토핫키에선 정확하게 패킷을 보내는것을 확인을 했습니다.