오토핫키 커뮤니티

조회 수 1539 추천 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
분류 제목 글쓴이 최근변경 추천
질문 HID스틱 쓰씨는 분 계시면 도움 부탁 드립니다. 클리오드나 2022.08.28 0/0
자유 hide 옵션에 관하여 질문좀 받아주세요 16 파더 2014.12.30 0/0
질문 Hide 관련 질문 5 파더 2014.11.29 0/0
정보 g라벨? v라벨? 설명좀해주세요 5 이리오리오 2016.10.25 0/0
질문 gui투명화할때요 text만 투명하지않게 할수없나요? 2 포천아지 2017.10.09 0/0
질문 Gui컨트롤에서 Edit칸에 적는 글자수를 인식하게 할 수... 10 GOLD 2017.12.11 0/0
질문 gui창이 다른창을 눌러도 작업표시줄 안나타나게 할수... 초핫 2023.09.22 0/0
질문 gui창에 앱플레이어 게임 플레이화면 2 스코빌 2022.12.14 0/0
질문 gui창 재시작에 대해서.. 1 사랑사랑 2015.07.28 0/0
질문 gui창 이동시(드래그중)에 멈춤현상 해결법 아시는분 ... 4 더러럭배 2019.11.10 0/0
질문 gui창 2개 중 1번 gui창에서 확인하면 닫아지면서 2번 ... 7 Rabbit 2015.04.21 0/0
질문 Gui에서의 reload 3 bleuG 2016.07.13 0/0
질문 Gui에서 포커스(하이라이트) 표시 제거 방법 좀 알려주... 검정다람쥐 2016.04.11 0/0
질문 Gui에서 삼각형 모양의 버튼?? 샤랄랄라 2017.01.20 0/0
질문 Gui에서 변수를 입력해서 매크로를 바꾸는게 가능한가요? 4 쉬르릴 2015.05.16 0/0
질문 Gui에 설정 불러와 적용 시키는 법좀 도움부탁드려요 12 가족오락관 2016.10.31 0/0
질문 gui브라우저에서 비활성서치 질문 드립니다. 오켕 2017.12.28 0/0
질문 gui버튼 시작중지 보임안보임설정부분요. 11 우후훅 2015.03.07 0/0
질문 gui버튼 눌렀을 때 새로운gui창 뜨게할려면 어떻게해야... 2 키다리원석 2015.08.04 0/0
자유 GUI만들기 너무 귀찮네요. 15 외치기 2015.10.21 0/0
Board Pagination Prev 1 ... 184185186187188189190191192 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글