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 Hỏi về DllCall - SendMessage

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi aventador, 12/3/18.

  1. aventador

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

    Tham gia ngày:
    31/7/17
    Bài viết:
    11
    Đã được thích:
    2
    Đoạn code này mình muốn bật calculator và bấm số 1 ( mình muốn dùng dllcall chứ không dùng controlsend). Bro nào fix hộ mình tại sao đoạn code này không hoạt động không ạ. Thank các bro

    #include <WinAPI.au3>

    $hWnd = Run("calc.exe")
    ; Local $hWnd = WinGetHandle("Calculator")
    Sleep(2000)
    DllCall("user32.dll", "int", "SendMessageW", "hwnd", $hwnd, "str", "1")
     
  2. kakanet

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

    Tham gia ngày:
    24/2/16
    Bài viết:
    204
    Đã được thích:
    182
    Cậu dùng sai rồi. Code cậu dùng chính xác là cái ruột của hàm _SendMessage .Hãy F1 hàm _SendMessage để xem cấu trúc của nó:
    Mã (AutoIt):

    #include<SendMessage.au3>
    _SendMessage ( $hWnd, $iMsg , $wParam = 0 , $lParam = 0)
    Ý đồ của cậu là send key, nhưng cậu chỉ mới có $hwnd và $wParam (là string cần gửi). Còn $iMsg thì chưa có. $iMsg là thông điệp muốn gửi đến control (gửi một key, mouse input, một event nào đó...)
    Vì cậu muốn send key nên $iMsg có thể là:
    $WM_SYSKEYDOWN = 260
    hoặc
    $WM_SYSKEYUP = 261
    hoặc
    $WM_CHAR = 258
    hoặc
    $WM_KEYDOWN = 256
    $hoặc
    $WM_KEYUP = 257
    hoặc
    $WM_SETTEXT = 12
     
    aventador thích bài này.
  3. aventador

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

    Tham gia ngày:
    31/7/17
    Bài viết:
    11
    Đã được thích:
    2
    cảm ơn kakanet đã giúp mình thông não nhé :)
    Mình đã gửi được phím system, nhưng không thể nào gửi được các phím như phím "a" vào trong notepad bằng hàm _SendMessage($hWnd, 256, 65, 1). Bạn giúp mình với. thank bạn
     
    Chỉnh sửa cuối: 13/3/18

Chia sẻ trang này

Đang tải...