플로렌스라는 개발자

오토핫키 비활성 라이브러리(20. 03. 09)

개발 작품 2019.02.28 댓글 39 Plorence

목차

    iwclib

    Gdip은 정말 좋은 라이브러리지만, 좀 더 편하게 쓸려면 다시 함수를 만들어서 써야했습니다.

    찾아보니까 딱히 없어서 라이브러리로 개발 했습니다.

    지원 오토핫키 버전


    • Unicode x32
    • Unicode x64
    • ANSI x32

    지원 함수


    CaptureforSave - 윈도우 캡쳐 후 저장

    Capture - 윈도우 캡쳐 후 비트맵 포인터를 리턴

    SimpleClick - 간단히 클릭

    SendStr - 간단히 문자열 전송

    InactiveImageSearch

    -멀티 이미지 서치 지원(2019-08-26)

    ImageSearchFromFile

    -멀티 이미지 서치 지원(2019-08-26)

    InactivePixelSearch - 비활성 픽셀 설치

    MultipleInactivePixelSearch - 다중 비활성 픽셀 서치, 하나 이상을 찾을 수 있음

    HideWindow - 윈도우를 숨김(비활성 이미지 서치, 픽셀 서치, 클릭 등 가능)

    ShowWindow - 윈도우를 다시 보여줌, 주 모니터의 왼쪽 상단에 이동시킴

    MakeKeyDownLParam - Postmessage를 사용할 때 쉽게 Down LParam을 만들 수 있는 함수

    MakeKeyUpLParam - Postmessage를 사용할 때 쉽게 Up LParam을 만들 수 있는 함수


    지속적으로 업데이트 될 예정이며 깃허브에 있습니다.(https://github.com/zxc010613/iwclib)

    (README 꼭좀 읽어주세요.)

    MIT 라이센스입니다.

    영어가 틀린경우나 소스코드에 문제가 있을 시 댓글이나 pull request, issue를 남겨주세요.

    해당 깃허브 저장소에 예제,함수 설명 되어 있습니다.


    마지막 수정 : 2020-03-09

    댓글

    39

    비밀댓글입니다

    2019.08.25 00:56

    기본적으로는 Gdip_ImageSearch함수에 OutputList라고 있습니다.
    Instances값이 얼마든간에 모든 포인트는 여기로 담겨지게 되어있습니다.
    LineDelim이 포인트마다 어떻게 구분 지을지, CoordDelim이 X값과 Y값사이에 어떻게 구분 지을지가 됩니다.

    방금막 깃허브 커밋했으니 최신버전 다운받아서 확인하시면 되겠습니다.

    2019.08.26 00:02 신고

    비밀댓글입니다

    2019.08.27 14:38

    비밀댓글입니다

    2019.08.27 21:13

    비밀댓글입니다

    2019.09.17 12:53

    비밀댓글입니다

    2019.09.23 17:27

    윈도우10, 에어로모드 활성화하셔야 합니다.

    2019.09.28 16:39 신고

    비밀댓글입니다

    2019.10.01 03:21

    윈도우10 에 32비트 오토핫키버전도 깔아보고 다 해봤는데 도저히 안되서
    다른 gdip 구해서도 해보고 여기서 구한 것도 깔아보고 예제 실행해봐도 도저히 안되서.. 기존 gdip에 PrintWindow(hwnd, hdc,"0x2";) -> "0x2" 만 추가 하면 된다고 해서 추가 하니까 기존 gdip는 되네요
    여기 라이브러리 쓰고싶은데 해결법 있을까요 ?

    2019.10.01 22:41
    321

    캡쳐 함수 맨뒤에 항상 Flag 매개변수가 있습니다.
    CaptureforSave("작업관리자","test.png",0,0,100,100,0x2)
    이렇게 써주시면 됩니다.

    2019.10.08 11:23 신고

    if(InactivePixelSearch("작업 관리자",0xff03ceb4,X,Y,30,50,50,600) == 1)

    여기서 0xff03ceb4가 색상인가요? RGB순서인가요? RGB순서이면 뒤에b4는 왜나타나는건가요?

    늦은밤에 죄송합니다.. 오토핫키 입문자라 알려주시면 감사합니다 ㅠ

    2019.10.25 00:01
    입문자

    안녕하세요. 많은 구글링을 통해 궁금증은 해결되었으나

    Include방법 , 강의를 혹시 접할 수 있을까요?
    예제를 보아도 도통 감이 안잡히네요 ㅠㅠ 죄송합니다.

    2019.10.25 01:35
    추가

    https://github.com/zxc010613/Ahk-inactive-library/blob/master/example_script/Capture.ahk
    위 링크에 include하는 코드가 나와있습니다.
    inactive.ahk, gdip.ahk 모두 같은 경로에 위치한다면
    #include inactive.ahk
    #include gdip.ahk
    해주시면 됩니다.

    2019.10.31 15:59 신고

    안녕하세요.
    위의 라이브러리를 이용해서 예제를 실행해 보았는데, ImageSearch.ahk 예제가 전부 Fail이 나옵니다.
    ImageSearchFromFile은 Fail이 나오면 안되는 명령어같은데,
    윈도우 10 64비트에도 실행이 되는 라이브러리인가요?

    2019.11.02 23:09
    윈도우10

    오토핫키를 32bit 버전으로 재설치하여 해결했습니다

    2019.11.03 01:45
    dd

    라이브러리 감사합니다.
    초짜지만 비활성 픽셀서치 한번 해보려고 주먹구구식으로 부딪히다가 실패만 거듭하고 포기..
    예제대로 따라해봤는데 뭐가 문제인진 몰라도 색값을 아무렇게나 입력해도 성공했다고 1을 리턴하더군요.
    윈7 크롬과 파이어폭스에서 테스트했고 그냥 1x1 이미지 서치로 대체하기로 했습니다. 이미지 서치는 잘 되는거 같네요ㅎ

    혹시 나중에 트랜스 기능 넣으실 생각은 없으신지요?

    2019.11.16 18:16
    ㅇㅇ

    이제야봤네요 죄송합니다.
    좀 고민해보고 말씀드리겠습니다.

    2020.02.20 23:38 신고

    안녕하세요 자료감사합니다 위에같은질문이있는데 예제파일 ImageSearch.ahk가
    모두 fail이나옵니다. 마찬가지로 ImageSearchFromFile부분은 받은상태
    그대로에서 실행하면 fail나오면 나오면 안되는부분이라고 생각이되는데
    오토핫키 설치버전도 바꿔보고 아무리해도 해결이안되네요
    에어로 키고 윈도우10 64비트,오토핫키버전은 깃허브에있는 버전으로 바꿔봤습니다.
    simpleclick은 동작되는건 확인했습니다 어찌 해결해야할지 몇시간째 뒤적이다
    질문드립니다 답변해주시면 정말감사합니다

    2020.03.07 03:09
    질문

    예제 스크립트에서 타이틀명 변경 없이 실행하신건가요?
    Capture.ahk를 실행하셔서 정상적으로 이미지가 캡쳐되시는지 확인 부탁드립니다.

    2020.03.07 20:16 신고

    네 다운받은후 예제를
    아무수정없이 실행하였습니다
    작업관리자실행후에 말씀해주신 캡쳐.ahk 실행해봐도 -1만나오네요 '
    gdip이 문젠가해서 교체해보았는데
    여기있는파일이 아닌 다른걸넣으니 오류가나오네요
    다른 노트북으로 실행해보아도 똑같습니다
    제가 아주기초적인걸 놓치고있는건지..어떤걸 확인해봐야 할까요?

    2020.03.08 21:49
    질문

    Capture.ahk을 실행하시고 리턴값이 -1면 관리자 권한으로 실행을 안하셔서 그렇습니다.
    관리자 권한으로 실행해보세요.

    2020.03.09 12:00 신고

    플로렌스님 문의드릴게 있는데요 루프안에서 인액티브미미지서치 함수사용해보니 메모리가 계속쌓여서 50메가찍고 뻗어버리네요. 확인 좀 부탁드릴게요

    2020.03.14 17:21
    ogib

    카카오톡 오픈채팅으로 연락주셨던 분이네요.
    알려주셔서 감사합니다.
    해당 문제는 수정되었습니다.

    2020.03.15 20:23 신고

    비밀댓글입니다

    2020.03.15 18:38

    네 맞습니다.
    0,0,0,0으로도 못찾는다면 캡쳐가 제대로 되는지 부터 확인하셔야 합니다.
    CaptureforSave함수로 캡쳐 후 저장해서 이미지가 제대로 캡쳐됐는지 확인 부탁드립니다.

    2020.03.15 20:26 신고

    비밀댓글입니다

    2020.03.18 16:46

    최신버전으로 다시 다운로드 후 해보세요. 잘 되는걸로 확인했습니다.

    2020.04.02 17:02 신고

    비밀댓글입니다

    2020.03.29 22:00

    변수 하나 더 만들면 되죠.
    Loop
    {
    Idx := 0; //인덱스
    Loop
    {
    ;작업란
    Idx += 1;
    }

    }

    2020.04.02 17:04 신고

    비활성 픽셀겟컬러를 이용하고싶은데.. 만들어 주실 수 있나요 ㅠㅠ?

    2020.05.24 16:31
    ㅁㄴㅇㄹ

    아 링크막혔네요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ부탁드립니다제발가능하십니까

    2020.07.03 15:53
    사랑합니다감사합니다

    무슨 링크가 막혔다는건가요?
    깃허브링크는 제대로 연결되고 있습니다.

    2020.07.03 23:21 신고

    안녕하세요 플로렌스님 댓글 무시해서 정말 죄송합니다 알림같은게 안와서 댓글 왔는지 확인이 불가능했습니다 ㅠㅠ
    잘 다운받았고 완전 잘쓰고있습니다 이상하게 내장 이미지서치사용하면 못찾는것을 플로렌스님이 만들어주신 inactiveimagesearch를 사용하니 시원시원하게 잘찾더라구요 거기다가 비활성이니 진짜 혁명입니다 진짜 너무 감사합니다고맙습니다

    근데 질문이있습니다
    그 이미지를 찾는것은 정말 엄청잘하는데 그 이미지 좌표값을 클릭하게 하는것이 안됩니다
    #include ..\lib\gdip.ahk
    #include ..\iwclib.ahk

    F4::goto Start
    F5::ExitApp

    Start:
    SucCount := InactiveImageSearch("block1","test.bmp",X,Y,333,583,501,661,10,"T|R",0)
    if(SucCount > 0)
    {
    controlclick, x%X% y%Y%, block1,,,, D NA
    sleep 50
    controlclick, x%X% y%Y%, block1,,,, U NA
    sleep 500
    msgbox 클릭완료 x%X% y%Y%
    }
    else
    msgbox 없는데 x%X% y%Y%
    ExitApp

    위처럼 msgbox에 X와 Y값을 말하게해놨습니다. 인식은 정말 잘됩니다. 제가 설정한 좌표 안에 이미지를 찾는것은 정말 잘되는데 '클릭완료 x y' 이렇게만 떳버립니다. x y값이 저장이 안되는것같습니다. 혹시 제 스크립트가 잘못된것인지 봐주시면 진짜 감사하겠습니다.
    이렇게 간단한 비활성이미지서치를 만들어주신것으로도 정말 감사드립니다. 저 기능이 없어도 저한테는 엄청난 혁명의 기능입니다 감사합니다고맙습니다

    2020.07.07 20:07

    코드 실행은 되는데 클릭이 안된다는 건 코드만 봐서는 어렵습니다.
    문법은 안틀리신 것 같은데, 매개변수나 Block1에서 비활성 클릭을 막고 있는게 아닌지 확인해보셔야 할 것 같습니다.
    티스토리는 원래 알림이 안떠요!

    2020.07.08 12:52 신고

    controlclick 작동은 잘 되는데 제 컴퓨터는 좌표를 못가져오네요 ㅠ_ㅠ 그래서 비활성 이미지서치 연계해서 하나하나찾아다가 그 좌표클릭하게 매크로만들었네요 만들어주셔서 진짜감사합다 제 매크로가 훨씬 고급져졌네요 감사합니다 고맙습니다 플로렌스님!!!!

    2020.07.08 14:37

    ㅠㅠ count : -1이 계속 뜹니다. (비활성픽셀서치)사용시

    관리자권환으로도 실행했는데도 불구하고 뜨는데 혹시 어떻게 조치해야되는지 알려주실수 있나요?

    2020.07.15 22:57
    감사합니다... 질문해도될까요?

    저도 아랫분처럼 바탕화면에서 테스트했는대 캡쳐는 되고
    이미지서치도 되는대 x,y 변수를 출력해보면 변수값이 없다구나와요;;; 이유를 잘 모르겠어요
    운영체제는 윈도우10 64비트 이고 오토핫키는 32비트

    2020.07.23 22:32
    남경우

    비밀댓글입니다

    2020.08.01 22:06

    test1 := InactiveImageSearch("test", "test.bmp",X,Y,0,0,0,0,5,"T|R",0)

    MsgBox, %test1%

    if(test1 > 0){

    targetX := X[A_index]
    targetY := Y[A_index]

    MsgBox,Idx:%A_Index% X:%targetX% Y:%targetY%
    SimpleClick("test",targetX,targetY)
    Sleep, 1000

    } else {
    MsgBox, 못찾았어요 ㅠㅠ
    }


    이렇게 테스트를 해보았는데.. 결과값은 1로 잘 뜹니다 그런데 내장변수에 담는 저 X , Y 좌표 값은 메세지 박스에 비어있습니다..

    그래서 SimpleClick 도 동작을 하지 않습니다 ... 이건 왜 그럴까요??

    첨부하신 비활성이미지 예제 파일은 작업관리자에서 잘 찾고 좌표도 메세지 박스에 잘뜨고 있습니다.

    2020.08.11 00:34