- Elkha - Blue
- 오토핫키 커뮤니티
- 오토핫키
[해결] 비활성 드래그 오작동합니다.
-
-
힌트 얻어서 소스 수정해서 적용해봤는데 안되네요.
등업님 말씀대로 어플 자체에 문제가 있는듯 하네요.
그나저나 postmassage, 0x20A, 가 마우스 휠다운 비활성 명령어 인데 안먹히는 이유가..무엇인지 당췌 모르겠네요. -
저 궁금한거 있습니다
위 소스 사용해 보았는데요 x값을 바꾸면 어느 숫자를 넣든지 왼쪽으로 이동이 되고
y값을 바꾸면 위로만 이동이 되는데요 `-`;; 문제가 뭐때문인지 모르겠네요.. -
혹시 블루스택 최신버전이신지요??
-
넵, 블루스택 최신 버전입니다.
-
x나y에 + - 50정도 시켜 보시고요 포스트메시지 사이에 0.3초정도 딜레이 걸어보세요 아마될거에요
-
아그리고 만약안되면 함수를 다시만드세요 현재 .x.y에서 도착.x.y로 되어있는거를 x.y클릭 값을 주고 중간 .x.y 그리고 도착 .x.y 로 3개로 나누시면 드래그가 되긴하는데 정밀도가 떨어질겁니다
-
ex) 드래그1번을 위한 3분할 함수
sendDrag10( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
p1 := px+100|py<<16
PostMessage, 0x201, 1, %p%, , % ActiveID
Sleep, 100
PostMessage, 0x201, 1, %p1%, , % ActiveID
Sleep, 200
Return
}
sendDrag11( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x200, 1, %p%, , % ActiveID
Sleep, 100
Return
}
sendDrag12( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x202, 2, %p%, , % ActiveID
Sleep, 100
Return
} -
3분할의 원리를 잘 이해했습니다. 감사합니다.
그래서 3분할원리 중 제 1함수인 "sendDrag10( x, y)"의 p1 := px+100|py<<16 주고 안 주고의 차이가 있는데 이유를 모르겠네요. 아직 초보라.. 설명해주시면 감사하겠지만 ㅎㅎ 아무튼 만족합니다.
저는 이 값을 사용하는 게임에 테스트 해본결과 p1 := px + py +10<<16을 주었더니 잘 됩니다.
또한 3분할을 다시 짜서 하나의 함수로 구성해봤더니 아주 잘됩니다. -
블루스택 바탕에서는 기존함수가 잘되나.. 어플접속시 안되시는 경우가 빌생합니디 좋은소스인데요 어쩔수없이 3분할을 하고있는데요..가장좋은건 기존함수에 대입해서..해결을 보시는게 좋아요 3분할은 임시일뿐...수고하세요 ^^
-
py기존 좌표 클릭을 유지한 상태에서 +10한 py값을 다시클릭함으로 옴기고 두번재 소스에서 이동을 마지막에 클릭을 때주는 방식입니다 이방법은 두번째 마우스 이동소스가 안되서 클릭 유지는 다른 좌표에서 유지해 이동인식을 하기위함입니다 기존소스로 실행하고 블루스택에서 마우스를 움직여주면 화면이 이동되는걸 볼수있습니다 응용3분할한거에요
-
[좌클릭유지 → x,y값으로 드래그 → 좌클릭 땜] 하면 "좌클릭땜" 에서 화면의 드래그가 멈추어야 하는데제가 하는 게임의 특성상 쭈욱~ 끝까지 화면이 드래그가 됩니다. 그래서 postmassage값을 몇개 더주었습니다.아래는 조언 주신대로 3분할을 테스트하고 다시 하나의 함수로 만든 소스입니다.p.s 3분할 테스트시 드래그를 총 두번하던데 그 이유를 알 수 있을까요?;; -----------------------------Drag(X1, Y1, X2, Y2){sleep, 200SysGet, wCaption, 4SysGet, wFrame, 7loX := oldXloY := oldYlnX := newXlnY := newYX1 := X1 - wFrameY1 := Y1 - wCaption - wFrameCoor1 := X1 | Y1<<16Coor2 := X1 | Y1 +10<<16X2 := X2 - wFrameY2 := Y2 - wCaption - wFrameCoor3 := X2 | Y2<<16WinGet, ActiveID, ID, BlueStacks App Playerif not getkeystate("Ctrl" , "p"){PostMessage, 0x201, 0, %Coor1%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x201, 0, %Coor2%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x200, 0, %Coor3%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %Coor3%,, ahk_id %ActiveIDsleep, 100PostMessage, 0x201, 0, %Coor3%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %Coor3%,, ahk_id %ActiveID%log := "# 드래그: " loX ", " loY " to " lnX ", " lnYAddLog(log)sleep, 300}else if getkeystate("Ctrl" , "p") ; 만약 컨트롤키가 눌려있으면{Loop ; 컨트롤키가 안눌려있을때 까지 loop{if not getkeystate("Ctrl" , "p"){PostMessage, 0x201, 0, %oldCoor1%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x201, 0, %oldCoor2%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x200, 0, %newCoor%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %newCoor%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x201, 0, %newCoor%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %newCoor%,, ahk_id %ActiveID%log := "# 드래그: " loX ", " loY " to " lnX ", " lnYAddLog(log)sleep, 300break}sleep, 100}}}
-
PostMessage, 0x201, 0, %Coor1%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x201, 0, %Coor2%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x200, 0, %Coor3%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %Coor3%,, ahk_id %ActiveIDsleep, 100PostMessage, 0x201, 0, %Coor3%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %Coor3%,, ahk_id %ActiveID%포스트를 두번쓰셔서 그럴겁니다..Coor1 로 클릭유지 Coor2 클릭유지 Coor3 이동하고 클릭 때고여기서 드래그 1번이 끝나고 Coor3좌표를 다시 클릭 유지하고Coor3에서 다시 클릭을 띠게끔 되어있네요Coor1 2 3 거쳐 드래그를 진행하면 화면이동이 발생하는데Coor3을 다시 클릭 하고 때게되면 화면이동중 중간 0.1초 이동사이에 다시 클릭해서좌표값이 바뀌며 2번 드래그 되는거 같네요제가보기엔PostMessage, 0x201, 0, %Coor1%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x201, 0, %Coor2%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x200, 0, %Coor3%,, ahk_id %ActiveID%sleep, 100PostMessage, 0x202, 0, %Coor3%,, ahk_id %ActiveID여기까지만 쓰시는게 맞을거 같네요 `-`a실질적으로는 테스트를 진행하셔야됩니다제 짧은 소견입니다...^ㅡ^ 수고하세요
-
postmessage 말고 controlclick 으로는 어려울까요??
postmessage 를 아직 못 익혀서 ㅜㅜ
분류 | 제목 | 글쓴이 | 최근변경 | 추천 |
---|---|---|---|---|
질문 | SciTE4AutoHotKey 설정 관련 질문드려요 2 | 킴푸른 | 2015.09.27 | 0/0 |
질문 | [해결] 비활성 드래그 오작동합니다. 14 | 마토깽 | 2015.10.24 | 0/0 |
질문 | 혹시 다른 게임 자동물약 소스 좀 가지고 계시분 있어요? | 꿈을낚는아이 | 2015.09.26 | 0/0 |
질문 | 도와주셔서 70%해결했는데 또 문제 발생했어요 .. 2 | 델몽뜨 | 2015.10.02 | 0/0 |
질문 | 궁금합니다! 2 | 캐귗낳 | 2015.09.25 | 0/0 |
질문 | 밤샐기세..이미지서치 죽어도 못찾네요 11 | 델몽뜨 | 2015.09.26 | 0/0 |
자유 | 오토핫키 움직이는 이미지 서칭질문 2 | 켈스이 | 2015.09.25 | 0/0 |
질문 | loop문 질문 드려요 !! 2 | 델몽뜨 | 2015.09.25 | 0/0 |
질문 | guicontrol 질문 좀 드릴게요 !! 2 | 델몽뜨 | 2015.09.24 | 0/0 |
질문 | 오토핫키에서 adb명령어 어떻게사용하나요..? 1 | 횬히 | 2015.09.24 | 0/0 |
정보 | [라이브러리] EasyINI 네이티브 ini 3 | 예지력1 | 2016.02.09 | 2/0 |
질문 | 오토핫키 GUI 속도 개선 방법 궁금증 13 | 프리 | 2015.10.02 | 0/0 |
질문 | 이미지서치가 PC에 따라 동작하고, 동작하지 않는 이유? 9 | 시나브로 | 2015.09.28 | 0/0 |
질문 | ctrl+w키는 어떤건지 찾기가 너무 힘드네요;; | 크루쟌 | 2015.09.23 | 0/0 |
질문 | wparam값 관련 명령어 아시는분.. 1 | 석빡귀 | 2015.09.23 | 0/0 |
질문 | 도저히 찾아보려고 해도 못찾겠어서 ㅠㅠ ..도와주세요... 9 | 백경민 | 2015.09.24 | 0/0 |
자유 | 깜짝이야... | fnwj | 2015.09.22 | 0/0 |
질문 | 혹시 피파온라인3 오토핫키 스크립트 갖고 계신분있나... | 앗뵤 | 2015.09.22 | 0/0 |
자유 | 오토핫키 초보...;;; 7 | 앙쥐 | 2015.09.24 | 0/0 |
자유 | 갑자기 썰러아네요.. 질문도없고.. 3 | 제발등업좀2 | 2015.09.24 | 0/0 |
이렇게하번해보세요 ㅎㅎ 저같은경우 드래그를 10번으로쪼개서.. 드래그합니다.
드래그비활성(x,y,Mx,MY)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
Mpx:=Mx-bordW/2
Mpy:=My-bordH/2-capH
Mp := Mpx|Mpy<<16
MMP:=MP/10
SS:=MMP
;MsgBox,%MP%//%MMP%
PostMessage, 0x201, 0, %p%, , %ActiveID%
Sleep, 500
Loop,9
{
MMP := MMP+SS
;MsgBox,%MMP%
;PostMessage, 0x200, 0, %MMP%, , %ActiveID%
;Sleep, 100
PostMessage, 0x201, 0, %MMP%, , %ActiveID%
Sleep, 100
}
PostMessage, 0x202, 0, %MMP%, , %ActiveID%
Sleep, 200
;MsgBox,끝
Return
}
이란식으로.. 10등분해서 조금씩움직이니 잘되더라구요