1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

AutoHotKey [Hỏi đáp] Xin giúp đỡ về Loop GDI+ ImageSearch

Thảo luận trong 'AutoHotkey' bắt đầu bởi hungtd12384, 6/8/18.

  1. hungtd12384

    hungtd12384 Thành viên mới
    • 1/6

    Tham gia ngày:
    6/8/18
    Bài viết:
    3
    Đã được thích:
    0
    Như tiêu đề mình cần chỉ giáo về cách loop gdip_imagesearch với ạ !
     
  2. DuyMinh

    DuyMinh Thành viên năng động
    • 28/34

    Tham gia ngày:
    14/3/17
    Bài viết:
    177
    Đã được thích:
    92
    Là sao ta? Mình chưa xài ImageSearch bao giờ... Loop thì được nhưng bạn muốn hỏi về gì?
     
  3. hungtd12384

    hungtd12384 Thành viên mới
    • 1/6

    Tham gia ngày:
    6/8/18
    Bài viết:
    3
    Đã được thích:
    0
    Loop gdip_imagesearch cho đến khi tìm đc ảnh ấy. Loop Imagesearch thì mình xài thường xuyên rồi còn cái gdip imagesearch là xài cho lúc mà ẩn cửa số ấy (inactive) thì mình loop nó k hoạt động
     
  4. Milli Master

    Milli Master ??
    • 93/113

    Tham gia ngày:
    9/7/16
    Bài viết:
    106
    Đã được thích:
    2,308
    Nơi ở:
    Thủ Đức, TP Hồ Chí Minh
  5. hungtd12384

    hungtd12384 Thành viên mới
    • 1/6

    Tham gia ngày:
    6/8/18
    Bài viết:
    3
    Đã được thích:
    0
  6. Milli Master

    Milli Master ??
    • 93/113

    Tham gia ngày:
    9/7/16
    Bài viết:
    106
    Đã được thích:
    2,308
    Nơi ở:
    Thủ Đức, TP Hồ Chí Minh
    Bạn dùng thử cái hàm này sao nhóe

    Mã (Autohotkey):
    Gdip_ImageSearch_Wait(Winhwnd,Image)
    {
        Loop
        {
            pToken:=Gdip_Startup()
            bmpHaystack := Gdip_BitmapFromHWND(Winhwnd)
            bmpNeedle := Gdip_CreateBitmapFromFile(Image)
            RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST)
            addx:=Round(Gdip_GetImageWidth(bmpNeedle)/2)
            addy:=Round(Gdip_GetImageHeight(bmpNeedle)/2)
            Gdip_DisposeImage(bmpHaystack)
            Gdip_DisposeImage(bmpNeedle)
            Gdip_Shutdown(pToken)
        }until (List<>"")
        pos:=StrSplit(list,",")
        xp:=pos.1+addx ,yp:=pos.2+addy
        return xp "," yp
    }
    Cơ mà mình thấy cái Gdip_ImageSearch nó không chạy được ở một số cửa sổ thì phải.
     
    Chỉnh sửa cuối: 7/8/18
  7. ledachai

    ledachai Thành viên
    • 18/23

    Tham gia ngày:
    17/5/20
    Bài viết:
    41
    Đã được thích:
    27
    Mình sửa lại chút cho người mới (như mình) dễ hiểu nhé
    Mã (Text):
       
        Loop
        {
            pToken:=Gdip_Startup()
            bmpHaystack := Gdip_BitmapFromHWND(hwnd)
            ;Gdip_SaveBitmapToFile(bmpHaystack,"test.png") ; chụp ảnh quét cửa sổ để nắm lỗi (nếu có)
            bmpNeedle := Gdip_CreateBitmapFromFile(needle)
            RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST)
            addx:=Round(Gdip_GetImageWidth(bmpNeedle)/2) ;hoặc gán trực tiếp giá trị pixel
            addy:=Round(Gdip_GetImageHeight(bmpNeedle)/2) ;hoặc gán trực tiếp giá trị pixel
            Gdip_DisposeImage(bmpHaystack)
            Gdip_DisposeImage(bmpNeedle)
            Gdip_Shutdown(pToken)
           sleep 5000 ;khoảng chờ giữa mỗi lần quét, tránh lag
        }until (List<>"") ;cho tới khi có kết quả trả về
        pos:=StrSplit(list,",")
        xp:=pos.1+addx ,yp:=pos.2+addy
        SetControlDelay -1 ; giảm nhiễu chuột
        ControlClick, x%xp% y%yp% , ahk_id %hwnd%,,,, NA ;click vào đó
        return
     
    KimSLi thích bài này.

Chia sẻ trang này

Đang tải...