오토핫키 커뮤니티

조회 수 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
분류 제목 글쓴이 최근변경 추천
질문 세븐나이츠 강화시 스크롤관련...(중복질문) 가족오락관 2017.09.19 0/0
질문 린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
Board Pagination Prev 1 ... 777879808182838485 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글