매크로

조회 수 1143 추천 6 댓글 17

프리헌터스님께서 핸들적용 업데이트 해주신후 활용범위가 정말 넓어졌습니다.


API에 대한 궁금증이 많으신분들을 위해 간단히 이해하기 쉽게 예제하나드리고갑니다.


멘땅에 해딩으로 익힌거라 직관적인 방법은 아닐 수 있으나 이해를 돕기위해 작성합니다.


API 사용하기위해서는 "창"의 핸들을 찾아야합니다.

윈도우는 창과 창의 대화입니다. 그림판을키면 그림판의 창이 열리는거고 메신저를 키면 메신저의 창이 열리고 이메신저안에서 

대화방을 열면 메신저 대표창의 자식창이 열린다고 생각하시면 되겠습니다.


각 창이 열리면 윈도우에서 핸들을 부여해줍니다.

우리는 API기능을 쓰기 위해서 그 "핸들"을 찾아야합니다.


사실 보통 대부분의 윈도우 프로그램은 메인 핸들을 찾은후 세부 자식핸들을 또다시 세부적으로 찾은다음 

내가 사용하려는 부분의 핸들을 찾아서 지정해줘야하는경우가 대부분일것입니다. 

이부분은 나중에 정리해서 올리고 오늘은 간단하게 사용가능한거만 예제로 쓸께요.



BGUKpVb.png

1.Findwindow 를 통하여 원하는 창의 핸들을 찾는다.

-우선 창이름(ldmultiplayer)을 먼저 알아내신후 아래와같이 그 창이름의 핸들을 찾습니다.

- findwindow로 ldmultiplayer이름을 가진 창의 핸들값을 멀티정렬api.0에 저장한다.

(자식핸들까지 찾아보실분은 대표핸들값 저장한것을 물리고 차일드파인드하면 싹다나옵니다.)

 



Q5V5ndZ.png


변수값에 ldmultiplayer 의 핸들값이 저장되었네요.


WOYyvmX.png


2.핸들값을 물리고 사용한다.

핸들에 체크해주시고 찾은 핸들값을 불러온후 포스트마우스 메세지로 자동정렬을 클릭합니다.

(스크립트내 핸들값에 찾은핸들값 숫자를 그대로 입력해주셔도 됩니다.) 



1. 마우스 왼쪽버튼을 누른다 {WM_LBUTTONDOWN, 1, 275,627}


2. 마우스 왼쪽버튼을 뗀다 {WM_LBUTTONUP, 1, 275,627}



엄청간단하죠?? 

예제로 ld멀티플레이어 멀티정렬을 클릭하기를 들었고 핸들컨트롤과 카카오토 스샷기능,변수,연산기능을

응용해서 많은곳에 사용 가능합니다. 

저같은 경우에는 카카오토로 특정그림이 나오면

스샷보관-> ocr전환 -> 추출된 문자->엑셀에 입력->통계값을 카톡으로전송 등 잡다한곳에 많이 사용하고있어요.

ps 스샷같은경우 연동이 되있는곳만(ex:앱플레이어연동상태) 스샷판단이 되기때문에 핸들값찾은곳의 이미지를 보관하고

비교하는 방식으로 응용하거나 프로그램자체를 연동하면 됩니다.


저처럼 맨땅에 헤딩하시는분들이 있다면 도움되셨으면 좋겠네요..


  • 잉크루시오 2020.08.09 21:17

    winapi 예제가 필요했었는데 감사합니다. 연구좀 해봐야겠습니다~

  • marchman 2020.08.11 11:00

    감사합니다. 이런 글이 좀 많았으면 좋겠네요^^

  • profile
    탱구리 2020.08.11 14:43

    이렇게 좋은 글은 강의쪽에 올려주세요~

  • marchman 2020.08.11 15:05

    효서니즘님 댓글로 설명은 달아주셨던데 혹시 카톡메시지로 역방향 통신하는거 예제로 설명한번 해주심 안될까요?

  • 아마존리버 2020.08.11 16:48

    좋은 정보 감사합니다.

  • 효서니즘 2020.08.11 19:05

    글작성하려니까 자꾸 무슨 커뮤니티 위반어쩌고하면서 안써지네요ㅠㅠ


    메신저관련해서 간략하게 설명드릴께요


    1.카카오토매니저를 켜기전 우선 PC카카오톡을 키고 양방향 소통할 카카오톡 대화창을 열어둡니다

    -매니저를 키고난다음 카톡을키면 미리보기에서 카카오톡이 안보여요 카톡키고 매니저키세요(초기제작시에만)

    K4I8G4f.png


    2. Findwindow 를 통하여  "카카오톡"의 핸들을 찾고 핸들보관함,0 에 값을 저장합니다.

    NDyq6eK.png


    3.핸들값이 제대로 저장되었는지를 확인합니다.
    gEbstho.png



    4.카카오토 매니저의 미리보기를 열고 연동가능목록에서 프로세스를 클릭합니다.
    QnN4eek.png



    5.findwindow를 통해 얻은 카카오톡의 핸들값을 찾고 펼칩니다.

    cURg4Ll.png


    6. 펼쳐진 핸들값을 보면 525060 이란 핸들값이 있습니다. 이것을 열어보면 아래와 같이 

    "이름검색" 부분의 핸들값을 찾을 수가 있습니다. 


    525044는 카카오톡 대표 핸들값이고 이것을 연동했을시에는 카카오톡 전체 자식핸들이 합쳐져 이루어진 총구성을 볼수있고

    525044의 자식핸들인 525060은 자식핸들인 "이름검색" 창핸들임을 알 수 있습니다.


    즉, 카카오톡을 열면 부분부분마다 핸들값이 다르게 매겨지는 각 각의 "창"이란것을 알수가 있습니다.


    UwIV7IP.png

    W4f8hbV.png



    7. 위에 설명되었듯이 우리는 카카오톡의 여러가지 자식 핸들중 대화방의 자식핸들을 찾아야 합니다.

    -위에 앞서findwindow 로 찾은 "카카오톡"의 핸들을 아래와 같이 연동해주고

    Enumchildwindow를 사용해 자식핸들을 핸들보관함,0에 덮어씌웁니다. 

    (자식핸들중 특정명이 들어가는 자식핸들은 지정하여 찾을수 있으며, 핸들사용이 익숙해지면 본인의 편리함에따라 지정하거나 사용하시면되겠습니다.)


    AoVCgGE.png


    8.자식핸들을 찾으면 왼쪽의 핸들값이 오른쪽 핸들보관함에 그대로 입력되어 있는것을 알수 있습니다.

    아래의 핸들을 하나씩 살펴서 대화방의 핸들값을 찾습니다.

    대화방의 핸들값은 918822 세번째 자식 핸들값인것을 알 수 있습니다.


    -카카오톡(프로그램) 재실행시 핸들값은 매번 변경이 되지만 자식핸들의 순서는 변동이 없습니다.

    -순서변동이 없는점을 이용하여 우리는 고정적으로 특정 핸들을 마음껏 사용 할수 있습니다.
    slQ0h1C.png

    9.대화방을 연동하면 아래와같이 연동된화면을 볼 수 있습니다.

    간단하게 이미지로 비교하는 방식으로 양방향 소통을 아래와같이 진행해볼수있습니다.

    (이미지보관방식은 대화방내 문구복사, 연산으로 그룹값 저장하는방법보다 cpu사용율이 높으나 매우 간단하므로

    예제로 우선 설명드립니다. 문구복사는 차후설명드림)


    -일반적인 스샷판단은 기존 앱플레이어 또는 연동걸어놓은 기기에 맞춰서 사용이 되므로 핸들값을 걸어도 

    당연히 기존의 연동상태의 스샷만 인식합니다.

    그러므로 아래와같이 반드시 api를 이용한 스크린캡쳐를 해줘야합니다.

    {70,114,70,20}을 풀어 설명드리면 70,114는 xy좌표 70은 넓이,20은 높이 입니다.

    스샷과 같이 "유튜브켜줘" 의 좌표 밑 스샷 보관규격을 적어줍니다.


    api를 이용해 카톡대화함 스샷을 카톡캡쳐후,0에 보관해줍니다. 

    6as2ZzU.png

    10.비교할 대상을 카톡캡쳐전 그룹에 미리 저장해두시고 아래와같이 스샷비교를 진행하면서 활용이 가능합니다.

    (api캡쳐시 당연히 핸들을 필수로 걸어줘야됩니다)dX3CTYA.png


    11.스샷을 이용해 api를 통해 현재상황을 캡쳐한 이미지와 기존 보관한 이미지를 비교하면 완성입니다.

    OGCdBeR.png

    위의 예제를 응용해서

    외출중 카톡을통해 작업명령을 내릴수있고

    pc는 작업을마친후 대화방의 채팅치는칸의 핸들을 활용하여

    작업완료 메세지를 보내줄수가 있죠 

    도움이 되셨으면좋겠습니다.

  • 매미매맴맴 2020.08.15 11:39

    좋은정보 감사합니다 

    덕분에 새로운걸 알아갑니다 

    혹시 카카오톡도 크기조절을 할방법이 있을까요???

    일단은 가장작은크기로 만들긴했는데, 크기가 달라지면 또안되네용

  • 효서니즘 2020.08.11 19:08

    아놔 댓글로도 다안써지네 ㅠ 글쓸수있는방법 찾아보겠습니다..

  • marchman 2020.08.11 19:55

    효서니즘님 너무 감사합니다. 덕분에 따라해보면서 공부하고 있는데요..하다보니 한가지 막히는게 카카오톡 대표핸들까지는 찾았는데 미리보기창 아래목록에서 카카오톡 대표핸들 밑에 있는 자식핸들을 하나씩 선택해봐도 미리보기창에 화면이 안뜨는데 어떻게 해야 뜰까요??

  • 효서니즘 2020.08.11 20:10
    그거 버그인데요 미리보기창을 늘렸다가 줄여보세요 그럼 정상으로 잡힐꺼에요 ㅎ
    계체변수 오류뜨는것은 확인불가합니당
  • 효서니즘 2020.08.11 20:23

    이게 재밌는게 카카오토 매니저 자체도 핸들컨트롤이 가능합니다..ㅋㅋ

    예전에 기기변경하고 해상도취득하는방법 물어보신분이 계셨었는데

    해상도취득 버튼 누르는 핸들자체를 찾아서 클릭하는 매크로를 만들어서 해결가능합니다 그분이 기억은안나는데 혹시나

    보시면 도전해보시길 ..ㅎㅎ

  • 에테르 2020.08.16 00:56

    효서니즘님의 예제를 통해
    원하던 바를 이루었습니다 ㅎ 
    감사합니다.. ^ ^

  • 스냐 2020.11.23 20:53

    감사합니다 저도 성공했네요

  • 초록개미 2020.12.30 14:58

    많은 도움 되었습니다. 감사합니다

  • 가즈아로로 2021.01.05 12:15

    감사합니다 많은 도움이 되었습니다

  • 안대 2021.01.05 17:27

    많은 도움이되었습니다~

  • 이제시작 2021.11.18 09:11

    안녕하세요~! 효서니즘님

    현재 kka.exe 파일 이용해서, 올려주신것 참고해서

    카톡으로 이미지 및 텍스트 전송은 쓰고 있는데요~!


    본문에

    스샷보관-> ocr전환 -> 추출된 문자->엑셀에 입력->통계값을 카톡으로전송

    저는 이미지에서 숫자만 추출해서 카톡으로 전송하고 싶은데요~!

    이거 저도 스크립트 주시면 감사히 잘 쓰겠습니다. ㅠㅠ


List of Articles
분류 제목 글쓴이 최근변경 추천
공유 카카오토 2.30 HID 수정본입니다. 83 프리헌터스 2024.02.15 22/0
공유 카카오토 서버 중지 안내입니다. 65 프리헌터스 2023.03.06 13/0
공유 카카오토 PRO V2.30 정식버전 입니다.(2020.2.1) 156 프리헌터스 2024.02.15 40/0
정보 카카오토 pro 2.30 주요기능(세번째 하드웨어 마우스/... 38 프리헌터스 2023.01.19 3/0
정보 카카오토 pro 2.30 주요기능(두번째 지역변수) 6 프리헌터스 2023.10.12 4/0
정보 카카오토 pro 2.30 주요기능(첫번째 윈도우플로그램) 15 프리헌터스 2023.01.18 5/0
공유 카카오토 PRO V2.30 베타버전 입니다.(2020.1.28) 84 프리헌터스 2020.02.01 21/0
정보 카카오토 연동관련 사항 정리글입니다. 55 프리헌터스 2023.05.30 13/0
공유 카카오토 Pro V2.20 입니다.(19.09.09. 연동변경) 160 프리헌터스 2023.01.18 27/0
공유 카카오토 V 1.764 입니다(2018.12.27 기기연동 업데이트) 52 프리헌터스 2020.11.06 2/0
공유 카카오토 Pro V2.11 입니다(2018.12.27 기기연동 업데... 206 프리헌터스 2020.02.05 37/0
공유 카카오토 Pro 2.01 버전입니다.[7.13 모모최신, 카카오... 400 프리헌터스 2020.02.01 105/0
공유 카카오토 PRO 오류제보 및 건의 / 최근 업데이트 내용 327 프리헌터스 2020.12.22 8/0
공유 카카오토 PRO b7버전(최종 : 12.28) 정보입니다. 470 프리헌터스 2023.05.07 56/0
공유 카카오토 PRO 안내 ...... 193 프리헌터스 2019.02.18 59/0
공유 카카오토 V 1.763 입니다(2018.5.8 기기연동 업데이트) 306 프리헌터스 2019.09.03 38/0
공유 카카오토 V1.75 입니다.... 115 프리헌터스 2018.01.19 25/0
공유 카카오토 V1.74 입니다..... 316 프리헌터스 2018.01.19 71/0
공유 카카오토 V1.72 입니다. 365 프리헌터스 2018.01.19 66/0
정보 카카오토PRO로 제작한 매크로 소스 공개 198 팟팟팟 2023.01.17 36/0
공유 카카오토 1.7 오류제보 및 건의 / 최근 업데이트 내용 56 프리헌터스 2019.12.17 13/0
공유 안녕하세요 카카오토 제작자 프리헌터스입니다. 194 프리헌터스 2023.02.19 73/0
공유 "카카오토 베타" 2015. 12.31일 (베타버전 기능) 401 프리헌터스 2018.01.19 61/0
질문 스톱워치는 초단위로밖에 안되나요? 3 서머서머 2020.08.15 0/0
질문 앱멈춤 관련하여 질문드립니다. asd 2020.08.13 0/0
질문 이미지에서 멈춰있을때 재실행도와주실분 간소하게 치... 5 엠하자 2020.08.15 0/0
질문 2.3 Pro 질문 드립니다. 앞프론뒷태 2020.08.12 0/0
질문 카카오토 2.3 질문 1 아마존리버 2020.08.15 0/0
질문 카카오토 ld플레이어 연결시 오른쪽 메뉴 보이게할수있... 2 로꾸거 2020.08.18 0/0
질문 앱플레이어에서 게스트 계정 날리는 방법 문의 드립니다. 4 kjw1258 2020.08.11 0/0
질문 텔레그램으로 스샷보내기 알려주세요. 3 일몬나이트 2020.08.19 0/0
자유 무슨짓을 해도 실시간 화면이 안뜨더니 1 KKcoy 2020.08.24 1/0
질문 카카오토 명령문 관련 해서 질문 드립니다. 2 kjw1258 2020.08.10 0/0
질문 msi앱플레이어로 카카오토 연결 하시는 분 있나요?? 질... 2 SJH 2020.08.10 0/0
자유 매크로팟팟팟님이랑 탱구리님에게 감사의 글 6 매크로공부햐 2020.08.14 1/-1
질문 앱플레이어에 마우스오버->다음 마우스 동작 안함 2 골골라굴 2020.08.10 0/0
정보 API관련 간단한 예제 (메신저양방향설명댓글추가) 17 효서니즘 2021.11.18 6/0
자유 딜레이를 매번 변경하고싶습니다. 3 서머서머 2020.08.10 0/0
질문 이미지 인식이 안되는데 뭘 잘못한걸까요? 3 오토조아 2020.08.08 0/0
질문 코드 깔끔하게 이런 기능 구현하려면 어떻게 할까요? 2 오토조아 2020.08.08 0/0
질문 프리헌터스님께 재부팅하면 왜 또 연동이 안되는건가요? 2 asd 2020.08.14 0/0
질문 카카오토로 윈도우 연동할수있나요? 1 로꾸거 2020.08.07 0/0
질문 카카오토 앱플레이어 종료후 재실행 매크로 가능한가요? 2 로꾸거 2020.08.13 0/0
Board Pagination Prev 1 ... 424344454647484950 ... 450 Next
/ 450

전체 최신 인기글

전체 주간 인기글