매크로

px:=x-WindowBorderWidth/2

py:=y-WindowBorderHeight/2-WindowCaptionHeight

p := 483|440<<16

1::

PostMessage, 0x201, 1, %p%, , Genymotion for personal use - nostam (480x800, 160dpi) - 아이피

PostMessage, 0x202, 0, %p%, , Genymotion for personal use - nostam (480x800, 160dpi) - 아이피


여전히... 인식안되는데 보더값계산해서 좌표도 넣었고... 뭐가 잘못된건지...ㅠㅠ


  • Hangoon 2015.03.06 07:55
    보더와 캡션 크기는 sysget으로 가져오신거겠죠?
    보더값 계산이 좀 이상하네요 왜 2로 나누셨죠?
    포스트메시지에 타이틀부분은 변수로 처리하는게 좀 더 안정적인것 같더라구요
  • 투혼레몬 2015.03.06 08:00
    px:=x-WindowBorderWidth/2

    py:=y-WindowBorderHeight/2-WindowCaptionHeight

    p := px|py<<16


    PostMessage, 0x201, 0, %p%, , % ActiveID


    PostMessage, 0x202, 0, %p%, , % ActiveID

    --------------------------------------------------------------

    투혼님은..postmessage에 대한 이해가 부족하신거 같네요..

    1. %p%는 좌표값을 계산한 변수값인데, 투혼님은 직접 숫자로 넣으셨죠? "15073930"..

    2. %activeid도 명령을 전달할 디바이스 값인데 "지니모션"이라고 만 넣으시지말고 풀네임을 넣으시던지 변수값으로 넣으시면 되겠네요

    3. 메모장을 쓰지마시고 SciTE$AutoHotkey를 사용하시면 문법에 도움이 되십니다..

    4. 마지막으로 mouseclick은 relative좌표값(창기준)이 적용되고 postmessage는 Client좌표값(창안에서 실제영역)이 적용되므로 창의 테두리,제목영역만큼의 값을 빼주는 공식이 모바게님의 소스를 보고 공부하셔요^^


    라고 예전에 핸콕님께서 얘기해줘서 보더값위에 pc py 적어야 되는줄알고 적어도 인식안되고 안적어도 인식이 안되고....

    제가 아직 초보라서 타이틀부분을 변수로 처리하는방법을 몰라서 ㅠㅠ

    sysget로 가져온거 맞아요 ㅠㅠ
  • 투혼레몬 2015.03.06 08:03
    또한가지...
    좌표값 구할때 sysget 으로 보더값 가져오는거 말고
    어떤분이 만들어놓으신 소스인거같은데...
    SetBatchLines, -1
    loop, 4
    {
    gui,%a_index%:+alwaysontop +toolwindow -caption
    gui,%a_index%:color,red
    }
    settimer, time,300
    gui,1:show, ,up
    gui,2:show, ,down
    gui,3:show, ,left
    gui,4:show, ,right
    return

    time:
    MouseGetPos, X1 , Y1, ids, clas
    ControlGetPos , X, Y ,width1,height1, %clas%, ahk_id %ids%
    WinGetPos , X3, Y3,,, ahk_id %ids%
    WinMove, up, , X3+x, Y3+y , Width1, 3
    WinMove, down, , X3+x, Y3+y+Height1-3, Width1, 3
    WinMove, left, , X3+x, Y3+y , 3, Height1
    WinMove, right, ,X3+x+Width1-3, Y3+y , 3, Height1
    tooltip, % "X" x1-x " Y" y1-y
    return

    guiclose:
    exitapp
    이걸로 작업영역 좌표 구해서 넣으면 안대나염? ㅠㅠ
  • Hangoon 2015.03.06 08:13
    제가 댓글에 3가지 말씀드렸잖아요
    보더는 왜 2로 나누셨나요
  • 투혼레몬 2015.03.06 08:16

    px:=x-WindowBorderWidth/2

    py:=y-WindowBorderHeight/2-WindowCaptionHeight

    행콕님이 나누라고해서... 나눠야되는줄알고...

    위에 선택영역 소스로 좌표 구해도되는지... 궁금합니다... ㅠㅠ

  • Hangoon 2015.03.06 08:27
    보더라는건 창 테두리의 두께고 캡션은 제목표시줄 두께에요
    구글에서 client좌표와 relative좌표 관련된 정보 한번 찾아서 공부하시구요
    Px와 py를 구하셨으면 p계산을 px랑 py로 하셔야죠
    다른 사람이 소스를 알려주면 그냥 복붙하기전에 한줄한줄 명령어를 찾아보며 이게 무슨 역할을 하는구나 하고 이해를 해야 다음번에 투혼님도 그 소스를 다른 사람에게 가르쳐줄수가 있겠죠
  • 투혼레몬 2015.03.06 08:35
    하아... 한군님... 위에 왜 제가 2로 나눴는지 처음댓글에 적어놨고...
    "티스토리에서 올려놓으신 [AHK] AutoHotKey 윈도우 실제 작업 영역 구하기 + coordmode 차이점" 이곳에서 충분히 보고 좌표값구해서 넣었는데... 제가 궁금한거에 대해선
    답변은 없으시구 계속 이상한거만 가르치려고 하시는.... ㅠㅠ 창테두리의 두께이고 캡션은 제목표시줄 두께라는건 충분히 알고있어요 지니모션이라는 특수한 응용프로그램에서 행콕님이 나누라고 소스 주셔서
    나눠놓은거고 위에 댓글은 하나도 안보시고 답변하시는거같아... 조금은 답답합니다... ㅠㅠ
  • Hangoon 2015.03.06 08:41
    왜 2로 나누셨는지는 알았고,
    그러니까 다른 사람이 가르쳐 줬다고 그냥 적용하지 마시고
    관련된 내용을 이해하시라는 답변이었습니다.
    왜 한번에 모든걸 해결하려하시죠?
    질문과 답변이면 모든게 해결되리라는 기대는 버리시기 바랍니다
    결국 이해는 본인이 하시는겁니다.
    한방에 원하는 답변이 오지 않는다고 저한테 답답하다고 하시니 이제는 제가 답답해 지는군요........

    제가 소스라도 짜드리면 더 빨리 해결되겠지만 정작 원하시는게 그건가요?
  • Hangoon 2015.03.06 08:44

    본문 소스보면 헨콕님 소스 복붙입니다.
    제가 처음에 문제 3가지 지적해 드렸죠

    보더 캡션은 sysget으로 가져오셨는지,
    보더는 왜 2로 나누셨는지
    타이틀 부분 변수처리 (이건 문제라고 하긴 어렵고 조금 더 안정적일거같다고도 말씀드렸죠.)

    그리고 다시 보다보니 px py계산식은 만들어놓으시고
    정작 클릭좌표인 p는 px py가 아닌 숫자로 계산하시고...
    이 부분 다시 지적해 드렸죠

    소스에는 보더를 2로 나눠 놓으시고도 왜 2로 나눴는지 이해를 못하시는거 같아 관련된 내용 공부하라고 말씀드렸죠

    제가 잘못된 답변 달아드린것 있나요?

  • 투혼레몬 2015.03.06 08:56
    아 그러네요... 본문내용 소스가 잘못된거네요...

    본문에 적어놓은내용자체는 그냥 임의로 적어놓은것이라 px/py 구한값으로 적어놓은게 아니고 그냥 숫자로 적어놓은거에요... 고수분들은 그냥 알아보실줄알고 타이틀명도 대충적어놓은거구요..

    한군님이 다시 질문하신 보더는 왜 2로 나누었느냐 라고 물어보셨길래 핸콕님이 알려주셔서 적었다고 했는데요

    어떤좌표를 적어도 지니모션 터치표시해서 봐도 터치하는 부분이 없고해서 지니모션이 특수한가보다하고 똑같이 소스 적은거고
    보더캡션은 sysget 으로 가져오셨냐고 하길래 그랬다고했는데 다른대답을 하셔서 그랬고
    타이블부분 변수처리 몰라서 댓글에 타이틀부분 변수처리는 초보자라서 몰라서 어떻게 처리하는지 물어봤는데 다른답변만 하셔서 그래서 위에 글처럼 답답하다고 한거였어요...
  • 투혼레몬 2015.03.06 08:59
    그리고 위에 작업영역 구하는 소스로 보더값같은거 계산안하고 바로 좌표를 넣으면 안되냐는 질문에대해서는 언급이 없으시길래 그냥 슥 훑어보고 답변다는거같아서 조금 답답했기도 하구요...
  • 투혼레몬 2015.03.06 08:59
    하여튼 제가 궁금한게 너무 많아서 죄송합니다....
  • Hangoon 2015.03.06 09:22
    포스트메시지로 비활성터치 공부하실때 답답한것은 이해합니다. 저역시 그랬구요
    그런데 남이 주는 소스로 백날 해봤자 이해못하면 소용없더군요

    저는 지니모션에 스케치북어플 켜놓고 좌표 바꿔가면서 테스트했습니다.

    레몬님 소스에서 위 두줄의 px py 계산식은 이미지서치에서 나온 좌표가 relative계이기 때문에 포스트메시지에서 사용할 수 있는 Cilent계로 변환하기 위해 넣은 명령입니다
    Relative좌표는 보더,캡션 포함된 창을 기준으로 원점을 잡습니다
    client좌표는 보더,캡션을 제외한 실제 프로그램영역만을 기준으로 원점을 잡습니다
    즉 Relative좌표 -> Client좌표 변환은 보더, 캡션을 빼줘야합니다.
    그런데 님께서는 sysget으로 가져온 보더를 2로 나누셨습니다

    이때 확인해봐야할것은 sysget으로 가져온 보더값이 몇인가? 전 오핫B를 쓰는데 저는 2로 나누지 않고 그대로 써야 정상적용됩니다. 헨콕님은 베팁게에 있는 모바게님 소스쓰시는거 같은데 왜인지 2로 나눠놓으셨군요. 모바게님 글을 깊게 안읽어봐서 잘 모르겠습니다만..... 이유가 있으시겠죠.
    암튼 sysget으로 가져온 보더값이 한쪽 창테두리의 두께가 맞다면 2로 나눌필요가 없겠죠. 이 부분을 msgbox와 윈도우스파이 등을 이용해 실제 내 컴의 보더값, sysget으로 가져온 보더값을 비교하여 확인을 먼저 해보시는게 순서입니다.

    그리고 님께서적어놓으신 483,440이라는 좌표를 어떻게 구한것인지, relative좌표계 기준인지 Client좌표기준인지 확실하게 확인하는것도 중요하겠죠.

    포스트메시지 명령 자체는 잘 쓰셨습니다. 하지만 남의 소스를 이해없이 가져다쓰면 위와 같은 확인 절차가 무시되기 쉽습니다. 남의 소스 쓰기전에 한줄한줄 들춰보며 왜 이 명령을 넣었는지 이해하는 습관이 필요합니다
    그냥 막연히 "지니모션은 저렇게 해야되나보다" 하고 쓰는건 위험하다는 얘기입니다
    그런식으로 코딩을 하다보면 매순간 벽에 부딪힐거고 그때마다 다른 사람에게 도움을 청해 다른 사람이 짜놓은 소스를 또 복사해서 붙여넣어야 문제가 해결될텐데, 그러자고 오토핫키 붙잡고 있는건 아니실거라 생각되어 답변드릴때 저는 소스를 드리기보다는 "뭐를 찾아보시라"고 드리는 편입니다만... 제가 그렇게 성격이나 말투가 싹싹한편이 못되는데다 글로 표현하다보니 좀 딱딱하게 들릴수는 있을 것 같습니다. 그런 점이 불편하셨다면 사과드립니다
  • theruin 2015.03.06 08:31

    caption과 border 값은 한번 확인해 보시고, Postmessage 에서 타이틀 설정 부분이 문제 일듯하네요.


    WTitle =?Genymotion for personal use - nostam (480x800, 160dpi) - 아이피


    PostMessage, 0x201, 1, %p%, , %Wtitle%?


    위와 같이 변수로 해보세요

  • 투혼레몬 2015.03.06 08:37
    하아 theruin님 정말 감사합니다... 드디어 제대로 읽고 답변해주시네요 ㅠㅠ

    궁금했던 타이틀 변수설정부분 감사합니다 ㅠㅠ

    캠션과 보더값은 다시 확인해볼께염 ㅠ
  • 핸콕 2015.03.06 10:09

    @Hangoon

    앗...이 느낌은..저때문에 투혼님이 hangoon님께 혼나는 듯한..;; 죄송합니다 ㅋ ?저를 한번 호출해 주셨으면..제가 해명을 할수 있었을텐데..두분께 죄송하네요 ;;


    해명을 좀 하겠습니다~


    먼저 투혼님께..^^

    저번 질문에 제가 답변드린건 저 일부분 소스가 아닌, 모바게님의 공개소스 링크 였습니다.

    링크를 보고시고 공부하시라는거였는데...^^;

    저위 두번째 댓글에서 제글을 다시 인용하셨는데,,저부분은 postmessage를 쓸때 숫자로 직접계산하지지마시고 px,py 등의 변수로 p값을 구한후 %p%변수값을 사용하시라는 예제로 쓴거지..그냥 복붙하시라는게 아니였는데..중요한 맨 윗줄은 걍 넘기시고..예제소스를 복붙만 하셨네요~링크의 모바게님 공개소스 전체를 보세요~


    그리고, 내 질문에 답글 다는분께는 절대 표현을 조심하셔야 합니다^^;;

    글이라는게 말과 달라, 조사 하나로 느낌이 달라셔서, 기껏 코멘트 해줬더니 오히려 따진다 싶은 때가 있더라구요, 저도 지금 그런 경험이 있더 몇분께는 아예 답글 안드리고 있답니다;;

    감사한 마음으로 댓글에 예의를 갖추시는게, 이번뿐만 아니고 다음에도 답글을 받으실수 있다고 생각합니다~



    다음 Hangoon님께..^^

    다른 질문에서 투혼님께 설명드리면서, 모바게님의 공개소스 일부분을 예제로 들었는데, 보더값을 2로 나눈 거였네요..

    저도 보더값을 왜 2로 나눴는지 아직 모르겠고, 저는 2로 나눠쓰지 않습니다..;

    언뜻 모바게님의 글에서 2로 나눠야 하는 경우가 있다는걸 본 기억은 있습니다만;;

    그냥 남이 알려준 소스를 걍 복붙했다는 초보분에 넘 혼내시는거 아녀요~;;ㅡㅜ 미워잉 ;;ㅋ

  • Hangoon 2015.03.06 11:09
    제가 뭐라고 누굴 혼내겠습니까 ㅎㅎㅎㅎ
    충분히 찾아볼수있는 실마리를 드린것 같은데도 제게 답답하다하시니 순간 예민하게 댓글 작성이 된것 같아.... 그 부분은 이미 사과드렸습니다.
  • profile
    외치기 2015.03.06 10:16

    고작 포스트메시지 가지고 뭘 이렇게들 싸우시는지 이해가 안되네요.

    그냥 능력안되면 안쓰면 편한데


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 if 문법 질문합니다. 2 skftk 2015.03.07 0/0
질문 다른사람이 만든 프로그램 스크립트를 볼 수 있는 방법... 3 빈스3678 2015.03.08 0/0
질문 loop 명령문 이렇게 쓰는거 맞나요? 6 언제나ing 2015.03.09 0/0
질문 포스트메세지 비활성클릭... 자꾸 물어봐서 죄송합니다... 18 투혼레몬 2015.03.06 0/0
질문 시간경과 프로그램만들어봣는데 안되네요 6 GOLD 2015.03.06 0/0
질문 버튼반응문제 해결되지않아 다시질문합니다 5 GOLD 2015.03.06 0/0
자유 쿠키런 매크로 없나요? 2 펄엔젤 2015.03.13 0/0
질문 어제올린 질문인데 다시씁니다.. 5 후루룹 2015.03.05 0/0
질문 도와주세용 이미지서치후 다시 이미지 서치할떄... 3 소리없이 2015.03.05 0/0
질문 이미지 2개를 찾는반복은 어떻게하나요? 7 후루룹 2015.03.27 0/0
질문 이미 한 선언을 바꿀수는 없나요? 6 GOLD 2015.03.04 0/0
질문 ControlSetText 질문 입니다~ 2 HyunYu 2015.03.03 0/0
질문 사용자 계정 컨트롤 경고창은 어떻게 넘기나요? 4 언제나ing 2015.03.04 0/0
질문 픽셀서치에서 3 라나바다 2015.03.03 0/0
질문 어느 숫자 보다 크다 작다를 인식하게 할 수 있나요? 8 수리봉얼짱 2015.03.04 0/0
질문 postmessage 비활성 컨트롤을 단축키로 만들고 싶은데... 8 투혼레몬 2015.03.07 0/0
질문 버튼 반응문제 7 GOLD 2015.03.04 0/0
질문 멀티플 이미지 서치관련 질문드립니다 6 한지1 2015.03.03 0/0
자유 오토핫키로 만드는거 어렵나요? 2 화뉘잉 2015.03.07 1/0
질문 이런식으로만들어보려고 하는데요..! 4 라나바다 2015.03.03 0/0
Board Pagination Prev 1 ... 179180181182183184185186187 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글