매크로

정보
2015.01.16 22:06

지니모션 드래그 함수

조회 수 512 추천 1 댓글 1

저도 드래그 때문에 약간 고생했었는데요.?


드래그는 사람이 움직이듯 for문으로 좌표를 증가시키면서 해줘야하는게 포인트 였습니다.


근데 오핫에는 for문이 없나요?? 오핫도 정보가 은근히 없더라구요 ㅠ_ㅠ


SysGet, TitleBorderWeight, 32 ; 보더두께값을 변수에저장

SysGet, TitleWeight, 4 ? ?; 제목표시줄두께값을 변수에 저장


WinGetPos, gX, gY, gWidth, gHeight, %title% ; 해당윈도우의 좌표와 크기를 얻는다.


pmovedrag(1, 612, 372, 612, 183, "위쪽", "왼쪽버튼", 1, 1000, FindTitle)


;---------------------------------------------------------------------

;[pmovedrag] postmessage 드래그

; cp=클라이언트 좌표인지 여부

; x,y=시작좌표

; x1,y1=끝좌표

; direction=드래그방향(왼쪽,오른쪽,위쪽,아래쪽)

; nbutton=왼쪽버튼or오른쪽버튼

; pushdelay=누름딜레이

; leavedelay=드래그 끝난후 딜레이

; titlename=창이름

;---------------------------------------------------------------------

pmovedrag(cp, x, y, x1, y1, direction, nbutton, pushdelay, leavedelay, titlename)

{

Global TitleBorderWeight, TitleWeight, gX, gY

; 윈도우 좌표일 경우

if cp = 0

{

x := x - TitleBorderWeight - gX

y := y - TitleWeight - gY

x1 := x1 - TitleBorderWeight - gX

y1 := y1 - TitleWeight - gY

}

; 클라이언트 좌표일 경우

else

{

x := x - TitleBorderWeight

y := y - TitleWeight

x1 := x1 - TitleBorderWeight

y1 := y1 - TitleWeight

}

N:=x|y<<16 ? ?;<-좌표를 16진수로 변환

N1:=x1|y1<<16

;PostMessage로 드래그 하기 위해선 이걸 해줘야한다. (c++버전 코드)

;LPARAM lparam;

;lparam = (HTRIGHT | (WM_NCMOUSEMOVE << 16))?


param := 11 | (0xA0 << 16)

PostMessage, %param%,, %N%,,%titlename%

if (nbutton = "왼쪽버튼") ; 왼쪽버튼

{

down = 0x201

up = 0x202

}

else ; 오른쪽 버튼

{

down = 0x204

up = 0x205

}

dragspeed = 15 ; 이걸로 드래그 속도를 정한다.?

PostMessage, %down%, , %N%, , %titlename% ; 왼쪽or오른쪽 버튼 누른 상태

if (direction = "오른쪽")

{

ncount := (x1 - x) // dragspeed

loop, %ncount%

{

nx := x + (A_Index * dragspeed)

N2:=nx|y<<16

PostMessage, 0X200, 1, %N2%, , %titlename% ; 마우스 이동

sleep, 1

}

}

else if (direction = "왼쪽")

{

ncount := (x - x1) // dragspeed

loop, %ncount%

{

nx := x - (A_Index * dragspeed)

N2:=nx|y<<16

PostMessage, 0X200, 1, %N2%, , %titlename% ; 마우스 이동

sleep, 1

}

}

else if (direction = "아래쪽")

{

ncount := (y1 - y) // dragspeed

loop, %ncount%

{

ny := y + (A_Index * dragspeed)

N2:=x|ny<<16

PostMessage, 0X200, 1, %N2%, , %titlename% ; 마우스 이동

sleep, 1

}

}

else if (direction = "위쪽")

{

ncount := (y - y1) // dragspeed

loop, %ncount%

{

ny := y - (A_Index * dragspeed)

N2:=x|ny<<16

PostMessage, 0X200, 1, %N2%, , %titlename% ; 마우스 이동

sleep, 1

}

}

PostMessage, %up%, , %N1%, , %titlename% ; 왼쪽or오른쪽 버튼 뗌

PostMessage, %param%,, %N1%, ,%titlename%

sleep, leavedelay

}




최근 추천글

오핫 제작합니다 1 설입 2024-06-18 23:45 +2
List of Articles
분류 제목 글쓴이 최근변경 추천
정보 Menu bar 근접하게 만들어봄 4 fnwj 2017.11.26 0/0
정보 맥주소 얻기 12 와이로 2015.10.05 1/0
정보 MS오피스 스타일 GUI 프로토타입 6 예지력1 2016.04.16 4/0
정보 팝업 알림, CleanNotify 3 예지력1 2015.11.11 4/0
정보 ㅋㅋㅋㅋ 베스트글 보려고 2랩찍으려다가 2랩 찍기전에... 6 sica 2018.03.03 0/0
정보 g라벨? v라벨? 설명좀해주세요 5 이리오리오 2016.10.25 0/0
정보 간단한 방법으로 길오아 오토핫키를 만들어보세요^^ 21 럭셔리형아 2018.02.07 4/0
정보 오토핫키를 간단히 쓰고싶지만 너무 어렵다고 느낄때 9 HyunsD 2018.02.07 3/0
정보 오토핫키 이미지 스위치... 6 파더 2015.11.27 0/0
정보 [Lib] Class MsgBox, 메시지박스 확장 4 예지력1 2015.11.27 2/0
정보 adb 관련 비활성화 이미지 서치 쉽게하기 6 운하파는 2016.07.02 1/0
정보 저번에 올려드린 홈페이지보다 더 유용한 사이트 5 침묵의고요 2018.02.07 2/0
정보 DynaScript - Child 프로세스로 코드 실행 13 예지력1 2019.07.16 3/0
정보 앱아이콘 터치없이 adb로 앱 실행 시키는 방법 18 와이로 2021.01.23 3/0
정보 오랫만에 들러서 하나 투척하고 가요 ^^ 7 로뎀나무 2019.07.30 0/0
정보 외치기님 푸쉬블렛 .. 시간 보내기 (누군가 질문던지신... 2 제발등업좀2 2016.03.30 1/0
정보 좌표개념 이해하기... 참고 그림.. 6 제발등업좀2 2016.05.26 1/0
정보 MsgBox 설정 3 괴리사 2016.06.08 2/0
정보 마지막으로 작업했던 오토핫키 공유(1) 6 Vesper 2017.05.29 1/0
정보 마지막으로 작업했던 오토핫키 공유(2) 2 Vesper 2016.11.03 1/0
Board Pagination Prev 1 23456 7 Next
/ 7

전체 최신 인기글

전체 주간 인기글