오토핫키 커뮤니티

조회 수 1015 추천 0 댓글 9

윈도우10 64비트 노트북이고 내장그래픽 사용중입니다.


우선 계산기를 이용해 비활성 서치를 하려합니다.


코드는 다음과 같습니다.


#include Gdip.ahk

ImageSearch_Inactive(Title, ImgFileName)
{
    If !pToken := Gdip_Startup()
    {
        MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you ha_ve gdiplus on your system
        ExitApp
    }
    OnExit, Exit

    pBitmapHayStack := Gdip_BitmapFromHWND(hwnd := WinExist(Title))
    pBitmapNeedle := Gdip_CreateBitmapFromFile(ImgFileName)

    Width1 := Gdip_GetImageWidth(pBitmapHayStack), Height1 := Gdip_GetImageHeight(pBitmapHayStack)
    Width2 := Gdip_GetImageWidth(pBitmapNeedle), Height2 := Gdip_GetImageHeight(pBitmapNeedle)
    E1 := Gdip_LockBits(pBitmapHayStack, 0, 0, Width1, Height1, Stride1, Scan01,BitmapData1)
    E2 := Gdip_LockBits(pBitmapNeedle, 0, 0, Width2, Height2, Stride2, Scan02,BitmapData2)

    MCode(Gdip_ImageSearch, "83EC148B4424309983E20303C28BC88B442434995383E2035503C2C1F80256C1F902837C24"
    . "30005789442420C7442410000000000F8EBE0000008B5C24288B7C24388D048D00000000894424188B442430895C241CE"
    . "B098DA424000000008BFFC74424440000000085C07E6D895C24148B6C242CC7442440000000008D6424008B4C24403B4C"
    . "243C0F8D8600000033C985FF7E158BD58BF38B063B02751F4183C20483C6043BCF7CEF8B442420035C2418FF44244003C"
    . "003C003E8EBC38B4C24448B5C24148B4424304183C3043BC8894C2444895C24147C978B4C24108B5C241C035C2418413B"
    . "4C2434894C2410895C241C0F8C68FFFFFF8B5424488B44244C5F5E5DC702FFFFFFFFC700FFFFFFFF5B83C414C38B4C244"
    . "48B5424488B44244C5F495E890A8B4C24085D89085B83C414C3")

    Time1 := A_TickCount
    VarSetCapacity(x, 8, 0), VarSetCapacity(y, 8, 0)
    Loop, 100
        DllCall(&Gdip_ImageSearch, "uint", Scan01, "uint", Scan02, "int", Width1, "int", Height1, "int", Width2, "int", Height2, "int", Stride1, "int", Stride2, "int*", x, "int*", y)
    MsgBox, % "Time for 100 searches: " A_TickCount-Time1 "ms`nx: " x "`ny: " y ;%
   
    Gdip_UnlockBits(pBitmapHayStack,BitmapData1), Gdip_UnlockBits(pBitmapNeedle,BitmapData2)
    Gdip_DisposeImage(pBitmapHayStack), Gdip_DisposeImage(pBitmapNeedle)
    return
}

MCode(ByRef code, hex)
{
    VarSetCapacity(code, StrLen(hex)//2)
    Loop % StrLen(hex)//2 ;%
        NumPut("0x" SubStr(hex, 2*A_Index-1, 2), code, A_Index-1, "char")
}

F9::
    ImageSearch_Inactive("계산기","Calc.bmp")
    return

Exit:
    Gdip_Shutdown(pToken)
    ExitApp
    return


컴파일 후 실행을 하면

Time for 100 searches:0ms

x:0

y:0


이 나오면서 이미지를 찾지를 못합니다...ㅠ


비활성이 아닌 그냥 이미지서치는 잘되는데...ㅠ


ㅠ 조언부탁드립니다.


  • 할거엄따구 2017.09.18 00:03

    Gdip_BitmapFromHWND 와 Gdip_Sa veBitmapToFile를 이용해서 파일로 저장해서 이미지캡쳐가 제대로 되는지 확인해보세요. 이미지가 제대로 안나온다면 베스트게시판에 제가 올린 내용 적용해보시고 다시해보시고요.

  • hiki 2017.09.18 00:18
    ㅠ 죄송합니다만... 계산기 기준으로 간략한 예제코드 적어주실수 있나요...
  • 할거엄따구 2017.09.18 00:58

    #include gdip.ahk


    winget,hwnd,id,ahk_exe calc.exe

    pToken := Gdip_startup()

    pBitmap := gdip_bitmapfromhwnd(hwnd)

    Gdip_Sa veBitmapToFile(pBitmap,"capture.bmp",100)

    Gdip_DisposeImage(pBitmap)

    Gdip_shutdown(pToken)


    검색하시면 다나옵니다...

  • hiki 2017.09.18 11:02
    감사합니다!!ㅠㅠ
  • hiki 2017.09.18 13:42
    해보니 데스크탑에선 잘되는데 노트북에서만 이상하게 안되는거였네요ㅠㅠ...
  • 할거엄따구 2017.09.18 13:44
    윈7이하면 그냥도 잘될거고 윈8이상에선 되는컴 안되는컴이 있습니다. 윈10 사용하시면 베스트게시판글 참고해서 사용해보세요.
  • hiki 2017.09.18 13:49
    윈도10 사용합니다 노트북 데탑 둘다요..ㅠ
    이상하게도 데탑에서는 같은 코드로 잘되고 노트북에선 안됩니다.
    데탑에서 같은 코드로 컴파일한 파일을 노트북에서 돌리면 잘되는데
    노트북에선 컴파일을 하든 안하든 비활성명령어들이 인식이 안되는데 영문을 모르겠네요...ㅠ
  • 할거엄따구 2017.09.18 14:17
    관리자권한 문제 아닐까 싶습니다.
  • hiki 2017.09.18 14:25
    음..ㅠ 구글링해보니 저와 같은 증상이신분들 많은데 다들 해결책을 못찾으신거 같아요...
    도움 주셔서 감사합니다! 그냥 데탑으로만 코딩 해야겠네용...ㅠ

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 린M 매크로 만들려고 하는데 고수님들의 소중한 의견을... 3 강경이 2017.11.12 0/0
질문 계속 질문글을 올려서 죄송합니다.. gdip trans기능 질... 2 hiki 2017.09.18 0/0
질문 노트북에서만 gdip 비활성관련 코딩이 안먹힙니다... 6 hiki 2017.09.19 0/0
자유 오~~좋은싸이트를 늦게서야 발견하였네요... Tammy_M 2017.09.18 0/0
질문 (허접질문)adb 리니지M 매크로 제작되나요? 2 테일하는병키 2017.09.18 0/0
질문 녹스에 PostMessage로 한글입력이나 붙여넣기는 안되나요? 9 Rabbit 2019.11.20 0/0
질문 gdip이용 비활성 서치를 하려는데 인식을 못합니다.. 9 hiki 2017.09.18 0/0
질문 settimer는 그라벨이 다끝날때까지 대기하나요? 1 adde 2017.09.18 0/0
질문 오토핫키 앱플레이어 개별 지정과 비활성모드 가능한가요? 4 도영아빠 2017.09.23 0/0
질문 아직 초보라서.. 어떤부분이 오류나는건지 알려주세요. 1 동생코코 2017.09.18 0/0
질문 자주쓰이는 해상도는 뭘까요? 포천아지 2017.09.17 0/0
질문 adb shell sendevent 사용법 질문.. 2 샤랄랄라 2017.09.18 0/0
질문 비활성으로 짜려면 뭐부터 시작해야 하나요? 1 잘해보자잉 2017.09.18 0/0
질문 오토핫키의 상태를 표시해줄수있는 방법을 고민중입니다. 4 포천아지 2017.09.16 0/0
질문 이미지서치 시간정하기 질문드려요 2 가태 2017.09.15 0/0
질문 오토핫키 이미지서치 질문 & 숫자 1씩 증가 질문 8 snfwld 2018.07.23 0/0
질문 디컴파일에 관해 알려주실분 아슈레인 2017.09.14 0/0
질문 요즘도 단풍잎 매크로돌아가나요? 세나블텍 2017.09.13 0/0
질문 이미지 서치시 해당그림에서 일부분만 판독해서 서치할... 4 hiki 2017.09.14 0/0
질문 녹스 adb 관련된 설명 볼 수 있는곳이 있을까요? 8 Rabbit 2017.09.18 0/0
Board Pagination Prev 1 ... 777879808182838485 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글