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 Cho hỏi cách gửi ControlSend tới cửa sổ ẩn?

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Ngothienvuong, 19/7/19.

  1. Ngothienvuong

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

    Tham gia ngày:
    6/9/18
    Bài viết:
    6
    Đã được thích:
    0
    Controlsend ?
    Anh em giúp mình gửi 1 phím đến cửa sổ ẩn . Ví dụ phim Mình số 2 là một thao tác thì minh có thử với controlsend nhưng nó chỉ gửi kí tự thay vì thao tác. Cảm ơn và chúc sức khỏe.
     
  2. #Rainy# Hoàng Vũ IT

    #Rainy# Hoàng Vũ IT Hoàng Vũ IT Moderator
    • 43/45

    Tham gia ngày:
    21/11/16
    Bài viết:
    404
    Đã được thích:
    122
    Cái này là do thiết kế của app đó nhé. vì nó bắt sự kiện active nên mọi thao tác là vô dụng nếu k active cửa sổ
     
  3. #Rainy# Hoàng Vũ IT

    #Rainy# Hoàng Vũ IT Hoàng Vũ IT Moderator
    • 43/45

    Tham gia ngày:
    21/11/16
    Bài viết:
    404
    Đã được thích:
    122
    Mã (AutoIt):
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 141, 57, 192, 124)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
        While WinActive($Form1)
            If $GUI_EVENT_CLOSE = GUIGetMsg() then Exit
            If _IsPressed("20") then MsgBox(4096,'Thông báo', 'Bạn vừa ấn BackSpace khi GUI active')
        WEnd
        If _IsPressed("20") then MsgBox(4096,'Thông báo', 'Bạn vừa ấn BackSpace khi GUI No-active')
    WEnd

    Func _IsPressed($sHexKey, $vDLL = "user32.dll")
        Local $aReturn = DllCall($vDLL, "short", "GetAsyncKeyState", "int", "0x" & $sHexKey)
        If @error Then Return SetError(@error, @extended, False)
        Return BitAND($aReturn[0], 0x8000) <> 0
    EndFunc   ;==>_IsPressed
    Chạy code active cửa sổ ấn Backspace và k active ấn Backspace thì sẽ thấy nó xuất hiện 2 msgbox khác nhau. nếu như cửa sổ chỉ cho phép 1 dạng thì nó là vô dụng. vì các cửa sổ luôn viết bằng bắt sự kiện nên đều phải bắt active cửa sổ
     
  4. DatBmt

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

    Tham gia ngày:
    30/12/18
    Bài viết:
    3
    Đã được thích:
    0

Chia sẻ trang này

Đang tải...