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

Hỏi đáp [Solved] Cách sử dụng PrintWindow của user32.dll (ImageSearch)

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi tungbach1990, 20/4/17.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Xin chào mọi người, mình là mem mới. Mong mọi người giúp đỡ. Cám ơn.

    Mình thấy có bài share về imagesearch inactive nhưng mình ko dùng được nên đã tự làm 1 cái imagesearch inactive theo dạng là chụp ảnh client rồi so sánh bmp với nhau, nhưng mà gặp khó khăn khi sử dụng PrintWindow trong user32.dll thì nhận được hình ảnh rất mờ dẫn tới khi imagesearch thì hình ảnh cần tìm kiếm cũng cần ảnh mờ luôn.
    Mình xin hỏi có cách nào cải thiện hình ảnh ko :(. Hoặc ai có bản ImageSearch nào sử dụng ok chút ko ạ, cám ơn mọi người :)
     
  2. quangcha

    quangcha Thành viên
    • 8/11

    Tham gia ngày:
    5/1/17
    Bài viết:
    44
    Đã được thích:
    14
    Bác làm image search inactive đi. Rồi share cho a e
     
  3. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Mình làm rồi nhưng khi lấy ảnh cần tìm thì cần lấy ở ảnh do tool tạo ra thì mới chạy ok được còn ấn nút Print thì do ảnh quá nét nó ko lấy đc :( đang hóng cao nhân giúp fix
     
  4. quangcha

    quangcha Thành viên
    • 8/11

    Tham gia ngày:
    5/1/17
    Bài viết:
    44
    Đã được thích:
    14
    The chac co van de o dau roi
     
  5. quangcha

    quangcha Thành viên
    • 8/11

    Tham gia ngày:
    5/1/17
    Bài viết:
    44
    Đã được thích:
    14
    Bác có thể tham khảo image search inactive window trên mạng. Tuy n không ổn định nhưng có thể tham khảo
     
  6. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Vấn đề ở chỗ thằng PrintWindow ko chụp được nét đó. Các imagesearch trên mạng toàn lấy trong dll thì tham khảo sao, bác có cái nào xài được ko mình mượn xem thử.
     
  7. quangcha

    quangcha Thành viên
    • 8/11

    Tham gia ngày:
    5/1/17
    Bài viết:
    44
    Đã được thích:
    14
  8. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Mình dùng ý tưởng có cái này mà, nhưng call PrintWindow của thằng user32 nó chụp ảnh mờ...
    Còn cái mà clip này share thì mình k dùng đc :(
     
  9. quangcha

    quangcha Thành viên
    • 8/11

    Tham gia ngày:
    5/1/17
    Bài viết:
    44
    Đã được thích:
    14
    Uhm. K co cai nao minimize ca
     
  10. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    b dùng thử xem ok ko.
    Mã (AutoIt):
    #include <WinAPI.au3>
    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    #RequireAdmin
    Local $hWnd = WinGetHandle("AutoIt Help (v3.3.14.2)")
    Local $pos = ControlGetPos($hWnd, "", "")
    Local $Width = $pos[2]
    Local $Height = $pos[3]

    Local $hDC = _WinAPI_GetDC($hWnd)
    Local $memDC = _WinAPI_CreateCompatibleDC($hDC)
    Local $memBmp = _WinAPI_CreateCompatibleBitmap($hDC, $Width, $Height)
    _WinAPI_SelectObject($memDC, $memBmp)
    _WinAPI_BitBlt($memDC, 0, 0, $Width, $Height, $hDC, 0, 0,$SRCCOPY)
    _GDIPlus_Startup()
    Local $hBMP = _GDIPlus_BitmapCreateFromHBITMAP($memBmp)
    Local $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBMP)
    _WinAPI_DeleteObject($hDC)
    _WinAPI_ReleaseDC($hWnd, $hDC)
    _WinAPI_DeleteDC($memDC)
    _WinAPI_DeleteObject($memBmp)
    _WinAPI_DeleteDC($hDC)
     
  11. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Thanks bác !
    Em đã thử và đổi cả mấy cái option của thằng bitblt nhưng toàn ra 1 màu đen xì, chụp cái khác thì đc nhưng dính đến thằng flash là chết :(
     
  12. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    flash b chụp ở đâu
     
  13. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    b thử xem
    Mã (AutoIt):
    Local $hWnd = WinGetHandle("PVP.net Client")
    _WinCapture($hWnd)
    Func _WinCapture($hWnd)
        Local $iH, $iW, $hDC, $hCDC, $memBmp

        Local $pos = ControlGetPos($hWnd, "", "")
        Local $iWidth = $pos[2]
        Local $iHeight = $pos[3]
        If $iWidth = -1 Then $iWidth = _WinAPI_GetWindowWidth($hWnd)
        If $iHeight = -1 Then $iHeight = _WinAPI_GetWindowHeight($hWnd)

        $hDC = _WinAPI_GetDC($hWnd)
        $memDC = _WinAPI_CreateCompatibleDC($hDC)
        $memBmp = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight)
        _WinAPI_SelectObject($memDC, $memBmp)

        DllCall("User32.dll", "int", "PrintWindow", "hwnd", $hWnd, "hwnd", $memDC, "int", 0)
        _WinAPI_BitBlt($memDC, 0, 0, $iW, $iH, $hDC, 0, 0, $SRCCOPY)

        _GDIPlus_Startup()
        Local $hBMP = _GDIPlus_BitmapCreateFromHBITMAP($memBmp)
        Local $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBMP)
        _WinAPI_DeleteObject($hDC)
        _WinAPI_ReleaseDC($hWnd, $hDC)
        _WinAPI_DeleteDC($memDC)
        _WinAPI_DeleteObject($memBmp)
        _WinAPI_DeleteDC($hDC)

        $sPath = @ScriptDir & '\capture.bmp'
        _WinAPI_SaveHBITMAPToFile($sPath, $hHBITMAP)
        ShellExecute($sPath)

        Return $hBMP
    EndFunc   ;==>_WinCapture
     
    tungbach1990 thích bài này.
  14. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5

    Đã thử nhưng vẫn ko đc bác ơi, trong hàm sử dụng PrintWindow nếu sửa cái thông số cuối thành 3 thì nó có chụp ra nhưng lại bị mờ giống của em

    game em chơi đây : http://ngoalong.game-lau.com/play/ngoa-long-03
    Bác chỉ cần chụp lúc nó load game thử là thấy, nếu để nguyên code sẽ đen xì :D
     
  15. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    ủa e thử với game gunny chụp cả cái IE ngon lành mà
     
  16. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Chắc gunny nó khác game này bác ạ, em có 1 cái auto của thằng Trung Quốc thì em chụp được ở auto của nó, em có thử tạo 1 cái chạy flash riêng set style y xì của thằng Trung Quốc kia mà lại ko chụp được, thật ko hiểu làm sao :(
     
  17. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    ^^ hay họ dùng ngôn ngữ khác b
     
  18. tungbach1990

    tungbach1990 Thành viên mới
    • 3/6

    Tham gia ngày:
    18/4/17
    Bài viết:
    17
    Đã được thích:
    5
    Ok rồi bác ạ :) _WinAPI_InvalidateRect là xong
    Thanks bác nhá

    Huhu nhưng thế này lại bị delay mỗi lần chụp :(

    à thêm thằng UpdateWindow là xử lý gọn rồi :) bác có gặp vấn đề tương tự thì nhớ nhá :D:D

    Cám ơn bác đã góp ý nhiệt tình

    P/s: Vẫn củ chuối lắm bác ạ, lắm khi nó bị chèn trắng lên khung hình
     
    Chỉnh sửa cuối: 22/4/17
  19. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    kaka e code c# rảnh rảnh vô tìm hộ mấy bác thôi
     
  20. dvhtrung

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

    Tham gia ngày:
    15/7/17
    Bài viết:
    11
    Đã được thích:
    0
    Share code được không bạn,mình cũng bị vướng chỗ này
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...