ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오토핫키 반응형 좌표
    오토핫키 2022. 5. 6. 01:54

    https://open.kakao.com/me/apsalman


    https://www.youtube.com/channel/UC6hW-NrL9CxDQd2IzWbekYA


    전체화면 속에 윈도우가 있고 그 윈도우 안에 보라색 점이 있다.

    나는 이 보라색을 클릭하고 싶다. 근데 이 창의 크기가 켤 때마다 변한다.

    이미지서치는? d3d 적용되어 검은화면으로만 인식된다.

     

    예) 난 스타를 하는데 미니맵을 인식하고 싶다. 근데 창모드건 전체모드건 미니맵의 크기는 게임의 해상도에 따라 크기만 변할뿐 비율은 변하지 않고 창의 크기가 어찌되었건 간에 인식시키고 싶다.

     

    이런 느낌으로 창의 크기는 변해도 보라색이 위치하는 칸은 변하지 않는다.

    그렇다면 우리는 먼저 계산을 해야한다... 너무 싫다. 쉽다가 아니다. 싫다 이다.

     

    전체화면의 크기 A_ScreenWidth, A_ScreenHeight

     

    창의 시작점 WinGetPos, WinX, WinY, WinW, WinH, WinTitle

     

    전체화면에서 보라색 점의 좌표 vx, vy

     

    이 정보들만 있다면 이제 비율을 구할 수 있다.

     

    SPX := WinX + 8 ; 창 시작X
    SPY := WinY ; 창 시작Y
    FPX := WinW + SPX - 8 ;창 끝X
    FPY := WinH + SPY - 8 ;창 끝Y
    
    WinSizeX := FPX - SPX - 8 ;창크기X
    WinSizeY := FPY - SPY ;창크기Y
    
    PointX := vx - SPX ; 보라색 점의 위치x
    PointY := vy - SPY ; 보라색 점의 위치y
    
    RateCPX := (PointX / WinSizeX) * 100 ; 사용자 편의 출력 비율x 
    RateCPY := (PointY / WinSizeY) * 100 ; 사용자 편의 출력 비율y
    
    Msgbox, 시작점 : %SPX%`, %SPY%`n끝 점 : %FPX%`, %FPY%`n창크기 : %WinSizeX%`, %WinSizeY%`n클릭점 : %PointX%`, %PointY%`n클릭비 : %RateCPX%`, %RateCPY%
    
    ;비율에 맞게 클릭하려면 시작점 + (창크기 * 클릭비)
    
    ClickX := SPX + (WinSizeX * (RateCPX * 0.01)) ; 클릭비율 x
    ClickY := SPY + (WinSizeY * (RateCPY * 0.01)) ; 클릭비율 y
    
    MouseMove, ClickX, ClickY

    복잡해보이지만 변수만 가득하다.

    댓글