매크로

조회 수 1485 추천 0 댓글 21
F1::
CoordMode, Pixel, Screen ;<- 좌표기준설정
WinActivate, BlueStacks ;<-블루스택활성화
WinSet, AlwaysOnTop, on, BlueStacks ;<-블루스택 창이 항상 위로
WinGetPos, X, Y, W, H, BlueStacks ;<- 블루스택의 위치 x좌표를 X에, y좌표를 Y에, 넓이를 W에, 높이를 H에 저장
SysGet, E, 32 ; <-보더두께값을 변수 E 에 저장
SysGet, Q, 4 ?; <-제목표시줄두께값을 변수 Q에 저장
sysget, e2, 33 ; 보더높이 추가 하시고
X2:=X+W ?; <- 블루스택 위치의 x좌표와 넓이를 더한값을 X2에 저장
Y2:=Y+H ; <- 블루스택의 위치의 y좌표와 높이를 더한값을 Y2에 저장
Controlsend,, {ESC}, BlueStacks
sleep, 1000
ImageSearch, X1, Y1, %X%, %Y%, %X2%, %Y2%, *99 이미지.bmp ?;<-여기서 저장되는 X1, Y1은 Relative좌표값
If(Errorlevel=0)
{
? ? X1:=X1-E ?;<-그래서 구해진 Relative좌표값에 보더값을 빼서 Client좌표값으로 변경
? ? Y1:=Y1-Q-e2 ;<- 위와 동일
? ? N:=X1|Y1<<16 ?;<-좌표를 16진수로 변환
? ? PostMessage, 0X201, , %N%, , BlueStacks
? ? PostMessage, 0X202, , %N%, , BlueStacks
? ? sleep, 3000
? ? Controlsend,, {ESC}, BlueStacks
? ? sleep, 3000
}

F2::pause
F3::exitapp

이렇게 기본클릭 esc구문을 만들었는데요
이미지서치 클릭도 안되고 esc도 작동이 안되네요
기본적으로 활성화 명령어만 사용하다가 비활성으로 수정하려고하는데 너무 어렵네요..
esc키를 어떻게 보내야될까요?

  • profile
    외치기 2015.02.05 14:36

    비활성 클릭은 좌표점을 계산하는 방식이 잘못된거같습니다.

    이미지를 찾은곳에서 블루스택에 위치좌표와 보더값을 빼는게 맞을거같습니다.


  • profile
    외치기 2015.02.05 14:37

    ControlSend [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]

    컨트롤 샌드의 기본 틀은 다음과 같습니다.

    위에 보이는 코드는 컨드롤 부분에 키가 들어가있습니다.

    컨트롤 부분이 생략되는지는 잘 모르겠습니다.

    컨트롤 부분을 생략하지 마시고 공백으로 두시고 한번 테스트 해 보시죠.

  • 껨달 2015.02.05 15:23
    ControlSend, , ^a, 제목 없음 - 메모장
    이런식으로 메모장에 적용할때는 잘 작동되더라구요 컨트롤 부분이 생략 되는거같습니다.
  • profile
    외치기 2015.02.05 15:30
    하....
    진짜 뭐라고 말을 해야할지
    지금 댓글에 적으신 메모장 코드는 컨트롤 부분이 공백이 들어가있잖아요
    위에 적으신 코드는 아예 공백마저 없고요.
    생략이 되냐 안되냐는 그걸 말씀드린거에요.
  • 껨달 2015.02.05 15:44
    공백유무는 상관이 없는거같습니다. 메모장에서 두 경우 다 테스트 해보고 질문드린거에요
  • profile
    외치기 2015.02.05 15:49
    콤마가 하나이거나 둘이거나 정상적으로 작동한다는 말씀이시죠?
  • 껨달 2015.02.05 16:05
    제가 올린 소스에는 콤마 하나가 빠져있었더라구요
    콤마 사이에 공백이나 그런건 문제가 없는거같아요
    콤마 2개 아니면 실행이 안되더라구요.
  • profile
    외치기 2015.02.05 16:11
    제가 말씀드린게 그거라고요
    아 이제야 뭔가 말이 통하는거 같네
    콤마가 하나면 컨트롤 부분에 키값이 들어가니까 안되는거죠
    콤마가 두개면 그 콤마사이에 컨트롤은 생략해도 되요
    다만 콤마를 생략하는건 안된다 그소리였어요.
  • 껨달 2015.02.05 17:36
    네 외치기님 시간내주셔서 댓글달아주셔서 감사합니다 여유좀 생기면 감 잡힌거 다시 소스 짜면서 테스트 해봐야겠네요 즐거운하루되세요!
  • 핸콕 2015.02.05 14:40

    esc가 안먹는 이유 : controlsend 뒤에 쉼표(,)가 하나 빠졌네요

    ? -?Controlsend,, {ESC}, BlueStacks


    이미지서치가 안되는 이유

    1. x2, y2값 산식 앞에 세미콜론(;)을 빼주세요..

    2. y1값을 구하실때 보더높이를 더 빼주셔야 합니다

    ? sysget, e2, 33 ; 보더높이 추가 하시고

    ? Y1:=Y1-Q-e2 ;<- 위와 동일

    3. f1명령문 마지막에 return이 빠졌네요..


    기타. 키전송 앞뒤에는 sleep을 짧게라도 넣으시는게 좋겠습니다(esc하지마자,이미지서치바로하고 바로클릭은 에러가 날듯하네요

    Controlsend, {ESC}, BlueStacks ?; <-블루스택에서 ESC 클릭
    sleep 1000
    ImageSearch, X1, Y1, %X%, %Y%, %X2%, %Y2%, *40 이미지.bmp ?;<- X1, Y1에 이미지 좌표 저장
    sleep 1000
    ?PostMessage, 0X201, , %N%, , BlueStacks
    ?PostMessage, 0X202, , %N%, , BlueStacks
    sleep, 3000

  • 껨달 2015.02.05 15:03

    e2 넣어도 똑같네요.. 기존 활성오토핫키하고 너무 많이 달라서 어렵네요. .새로처음부터 배우는 기분이라 더 헷갈리네요 ㅠㅠ

    제가 return을 잘 안써서 작동상 문제는 없는거같더라구요.?

  • 리체 2015.02.05 18:23
    return은 무조건 써주세요.
  • profile
    외치기 2015.02.05 14:58

    지금보니 이미지서치에서 구해지는 값이 활성창 기준이네요?

    그런데 %X2%,%Y2% 이부분은 확실히 잘 못 적으신거 같네요.

    활성창 기준이시라면 블루스택 위치좌표를 더할필요가 있나 싶네요.

    물론 주석처리하셔서 아무것도 없는 쓰레기값이들어가겠지만요.

  • 껨달 2015.02.05 15:11
    일단 활성 비활성 다 테스트 해보고있는중에 올렸거든요
    자꾸 오른쪽 사이드만 클릭하네요
  • profile
    외치기 2015.02.05 15:33
    스크린 기준으로 구해온 좌표를 잘못된 계산으로 컨트롤에 보내주면 좌표값이 너무 크니까 자꾸 오른쪽 끝을 클릭하는거에요.
  • 껨달 2015.02.05 15:47
    감사합니다. 다 지우고 처음부터 계산하면서 구현해봐야겠네요. 외치기님 덕분에 감이 조금 잡히는거 같습니다
  • profile
    외치기 2015.02.05 15:49
    예전에 모바게님이 올리신 비활성 좌표계산법 찾아보세요.
  • 껨달 2015.02.05 15:14
    게시글 소스 수정했는데요 한번만 더 부탁드리겠습니다.
  • profile
    외치기 2015.02.05 15:32
    진짜 댓글 달면서도 너무 답답해서 좀 격하게 적을게요.
    죄송해요.
    맨 윗줄에서 분명히 스크린을 기준으로 잡으셨는데
    중간에 주석에는 활성창이라고 적혀있고
    코드가 되게 난잡해요.
    일단 스크린 기준으로 좌표가 얻어진다면 제가 위에서 말한것처럼
    얻어진 좌표에서 블루스택 위치좌표를 빼셔야 정확한 값이 나오겠죠.
  • 리체 2015.02.05 18:21

    CoordMode, Pixel, Screen

    X1:=X1-X-E+5

    Y1:=Y1-Y-Q-e2+5
    맨위에 스크린 좌표로 해놓으셨으니 검색되는 값은 스크린좌표입니다.
    그러므로?스크린에서 창위치값도 빼주셔야 클라이언트 좌표가 구해집니다.
    또한, 이미지의 왼쪽위 부분의 좌표이므로 클릭이 안될수도 있으니?클릭점의 크기에 따라서 적절히 +포인트를 해줍니다
    p.s : 이미지서치 하실때 가급적이면 해당 이미지가 있는 부분보다 조금더 넓게만 서치할수 있게 하세요.
  • 껨달 2015.02.06 00:04
    조언 감사합니다~ return 습관 길러야겠어요. 편안한밤 되세요^^

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 PixelColor 함수 질문 드립니다. 1 리체 2015.02.07 0/0
질문 이미지써치 질문있습니다 5 태희씽 2015.02.07 0/0
질문 두가지 키기능을 합치려는데 종료가 잘 안되네요 서시 2015.02.07 0/0
질문 오토핫키는 모니터 끄면 실행이 안 되나요?? 5 알이즈웰 2015.02.11 0/0
질문 이미지 서치 구동시 인식하는 시간이 얼마나 걸리나요? 19 고맙습니다용 2015.02.07 0/0
질문 오토핫키 모바일 환경에서 구동 가능한가요? 2 비훑 2015.02.06 0/0
질문 오토핫키 SciTE4 질문 12 neG 2015.02.06 0/0
질문 입문자입니다. 오토핫키 클릭관련 질문있습니다! 7 헌잉 2015.02.07 0/0
질문 베스트에 있던 퓨이러스님 매크로 없어졌나요?? 8 알이즈웰 2015.02.09 0/0
질문 오토핫키 이미지 서치 질문입니다. 5 올드휴고 2015.02.06 0/0
자유 요즘 왜이렇게 바쁜지 모르겠어요. 2 외치기 2015.02.16 1/0
질문 듀얼모니터+가상모니터 문의 드립니다. 3 쉬니안 2017.12.24 0/0
질문 esc를 비활성으로 키 조합 보내려고 하는데요.. 질문드... 21 껨달 2015.02.06 0/0
질문 오토핫키 WinGetActiveTitle 11 쑤하람 2015.07.25 0/0
질문 마우스 기능 스크립트좀 도와주세요ㅠ.ㅠ 18 서시 2016.04.29 0/0
질문 오토핫키 맥북에서 사용가능한가요? 9 우유송이 2015.02.05 0/0
질문 초보 궁금한점 가르쳐주세요 2 야천 2015.02.05 0/0
질문 에디트박스 스크롤 질문드립니다 4 보득 2015.02.05 0/0
질문 혹시 스크립트 분석해서 최적화해주는 그런 프로그램 ... 7 옥짱 2015.02.05 0/0
자유 외치기님, 모바게님은 오핫계의 신의 영역이십니다... 3 파더 2015.02.05 0/0
Board Pagination Prev 1 ... 184185186187188189190191192 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글