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

UDF _IMGSearch 2015

Thảo luận trong 'Chia sẻ mã nguồn' bắt đầu bởi Tungtata, 19/9/15.

  1. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    [​IMG]
    Do UDF ImageSearch mà ae tìm kiếm gặp nhiều hạn chế cũng như còn sơ sài.
    Mình viết lại UDF _IMGSearch dựa trên DLL có sẵn của ImageSearch
    Phù hợp trên win 7 trở lên (32 và 64bit)

    Các hàm cơ bản
    Mã (AutoIt):
    _IMGSearch
    _IMGSearch_Area
    _IMGSearch_Wait
    _IMGSearch_WaitArea
    Đặc biệt hỗ trợ search multi image
    Đặc biệt hơn nữa là kèm theo 1 UDF Debug để tạo BMP nhanh theo chuột. Xem video dưới sẽ rõ

    Bên trong đã có example.
    Mã (AutoIt):
    #include "_IMGSearch.au3"
    #include "_IMGSearch_Debug.au3"

    ; At first. You have to create 2 file test1.bmp and test2.bmp of your screen (i.e some icon)

    MsgBox(0, 'Example', 'At first, use this function to create 2 file bmp, maybe a desktop icon for example')
    _IMGSearch_Create_BMP(@ScriptDir & "\test1.bmp")
    _IMGSearch_Create_BMP(@ScriptDir & "\test2.bmp")
    $findImage1 = 'test1.bmp'
    $findImage2 = 'test1.bmp|test2.bmp'

    MsgBox(0, 'Example 1', 'Check if an Image appear on your screen')
    Local $a = _IMGSearch($findImage1, 200)
    If $a[0] == 1 Then
        MsgBox(0, 'Success', 'Image found')
    Else
        MsgBox(0, 'Failed', 'Image not found')
    EndIf

    MsgBox(0, 'Example 2', 'Check an of list image appear on your screen. Move mouse to it')
    Local $a = _IMGSearch($findImage2)
    If $a[0] == 1 Then MouseMove($a[1], $a[2])

    MsgBox(0, 'Example 3', 'Check if an of list image appear on your screen. Move mouse to it. Use _IMGSearchWait with timeout')
    Send("#d")
    Sleep(300)
    Local $r = Run('notepad', '', @SW_MAXIMIZE)
    MsgBox(262144, 'Example 3', 'Wait a moment then try to close notepad and show your desktop to see you icon example')
    Local $a = _IMGSearch_Wait($findImage2, 10000)
    If $a[0] == 1 Then
        MsgBox(0, 'Success', 'Image found')
        MouseMove($a[1], $a[2])
    Else
        MsgBox(0, 'Failed', 'Image not found')
    EndIf
    WinClose("Untitled - Notepad")
     
    Tặng kèm các bạn video hướng dẫn làm autoclick với BlueStack đơn giản bằng UDF này
    Trong video mình dùng Click và Send là đơn giản nhất.
    Bạn có thể kết hợp sử dụng ControlClick, ControlSend và tùy biến thêm thì với UDF này bạn có thể làm mọi thứ :autoit:
     

    Các file đính kèm:

    Chỉnh sửa cuối: 19/9/15
  2. Mr.NamMo

    Mr.NamMo Thành viên mới
    • 1/6

    Tham gia ngày:
    19/9/15
    Bài viết:
    1
    Đã được thích:
    2
    Ko biết khi đổi máy khác thì Img còn True ko?
    Vì mỗi máy có 1 pixel riêng. nếu có cách chụp theo low img thì chuẩn.
    Viết 1 lần mà chạy đc tất cả,
     
    kamsamita1 and Phan Dong like this.
  3. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    b thử xem, theo mình thì ok
     
    kamsamita1 and Phan Dong like this.
  4. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    1,956
    Nơi ở:
    Thành phố Hồ Chí Minh
    Trước khi làm set size cửa sổ lại, rồi hẳn làm!
    Nhưng thế pixel sẽ không thay đổi ở mỗi máy
    => Đấy là cách mình nghĩ -> chưa áp dụng thử => Không biết được hay không!!!
     
    kamsamita1 and Phan Dong like this.
  5. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    còn tùy nữa, vd bluestack thì k vậy đc, nó liên quan đến độ phân giải của của bluestack nữa
     
    kamsamita1 and Phan Dong like this.
  6. Phúc

    Phúc Thành viên mới
    • 3/6

    Tham gia ngày:
    29/9/15
    Bài viết:
    5
    Đã được thích:
    10
    ủa nếu muốn lấy hình ảnh từ cửa sỗ desktop thì dùng lệnh ?
     
    kamsamita1 and Phan Dong like this.
  7. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    dùng hàm debug trong bộ file có đó b
     
    kamsamita1 and Phan Dong like this.
  8. Phúc

    Phúc Thành viên mới
    • 3/6

    Tham gia ngày:
    29/9/15
    Bài viết:
    5
    Đã được thích:
    10
    $img = _IMGSearch_WaitArea(@ScriptDir & '\File' & $i & '.bmp', 10000, $BS[0], $BS[1], $BS[0] + $BS[2], $BS[1] + $BS[3])
    có thể giải thích cái $BC[0] > $BC[3] đc k ?
     
    kamsamita1 and Phan Dong like this.
  9. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    b lấy đoan code này ở đâu? còn xem $BS được khai báo ở đâu. Theo mình đây có thể là wingetpost của bluestack, ý của đoạn code này chỉ search trong màn hình BS thôi. Làm code nhanh hơn và chính xác hơn là full màn
     
    kamsamita1 and Phan Dong like this.
  10. Phúc

    Phúc Thành viên mới
    • 3/6

    Tham gia ngày:
    29/9/15
    Bài viết:
    5
    Đã được thích:
    10
    trong cái UDF _IMGSearch nè tại k hĩu nhìu khai báo nhiều qá thữ chạy vòng lập while mà nó báo lỗi ngay chỗ $BC nên hỏi
     
    Chỉnh sửa cuối: 9/10/15
    kamsamita1 and Phan Dong like this.
  11. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    bạn nói thế thì mình cũng k thể giúp gì đc r
     
    kamsamita1 and Phan Dong like this.
  12. xuan2261

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

    Tham gia ngày:
    8/10/15
    Bài viết:
    2
    Đã được thích:
    4
    rất hay , có thể tương tác với nhiều ứng dụng cùng lúc không bạn nhỉ, ví dụ notepad rồi coppy và paste vào bluestack
     
    kamsamita1 and Phan Dong like this.
  13. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    với file text b sử dụng FileOpen, FileRead, FileClose
    Mã (AutoIt):
    $fo = FileOpen('file.txt')
    $fr = FileRead($fo)
    FileClose($fo)
    MsgBox(0, '', $fr)
     
    kamsamita1, Phan Dong and xuan2261 like this.
  14. xuan2261

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

    Tham gia ngày:
    8/10/15
    Bài viết:
    2
    Đã được thích:
    4
    vì file txt có nhiều hàng, mỗi lần tưng tác thì mình muốn coppy 1 hàng thôi, sau đó lân thứ 2 coppy hàng tiếp theo thì làm thế nào bạn nhỉ
     
    kamsamita1 and Phan Dong like this.
  15. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
  16. thieu

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

    Tham gia ngày:
    11/10/15
    Bài viết:
    2
    Đã được thích:
    2
    a ơi :( sao no click lên góc tren trái màn hình nhỉ :( nó k chạy đúng ! với cả nó có lưu ảnh rồi nhưng ví dụ nó lại hiện báo k tìm được ảnh :(
     
    Phan Dong thích bài này.
  17. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    1,956
    Nơi ở:
    Thành phố Hồ Chí Minh
    Cụ thể đi bạn!
    Bạn nói như thế thì chẳng ai biết vấn đề nằm ở đâu mà giải quyết!
     
    Phan Dong thích bài này.
  18. thieu

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

    Tham gia ngày:
    11/10/15
    Bài viết:
    2
    Đã được thích:
    2
    e bật Example _IMGSearch ! thì nó toàn báo k tìm thấy ảnh ! mặc dù vào thì thấy đã tạo 2 file test1 và test2 !:( xong e test tiếp AutoAddAccountBlueStack ! làm thử theo video thì auto click vào góc trên trái màn hình (tọa độ 0 0 ý ạ ) @@ k click tẹo nào vào bluestack !
     
    Phan Dong thích bài này.
  19. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    236
    Đã được thích:
    657
    Nơi ở:
    Hà Nội
    click góc trái vì nó k tìm đc ra ảnh, thì tọa độ sẽ là 0.0, phải phải xét giá trị trả về [0] trước xem nó trả về k đã
    Cái example chỉ là ví dụ thôi. bạn phải vận dụng nó cho phù hợp vs code của b
     
    Phan Dong and Huỳnh Đức like this.
  20. Huỳnh Đức

    Huỳnh Đức Thành viên mới
    • 3/6

    Tham gia ngày:
    5/11/15
    Bài viết:
    1
    Đã được thích:
    1
    Toàn k tìm thấy ảnh rồi click vào góc màn hình thôi ad ơi
     
    Phan Dong thích bài này.

Chia sẻ trang này

Đang tải...