Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Làm thế nào để phát hiện ra là Người dùng đang nhấn phím hay Unikey?

    Khi Hook bàn phím mỗi lần bấm tiếng việt thằng Unikey hoặc vietkey nó tự SendInput phím VK_BACK ( mã ký tự 8 )

    Làm thế nào để Phát hiện ra là Người dùng đang nhấn phím VK_BACK hay do Unikey bắn ra ?

    Có cách nào để nhận ra là ngừoi dùng đang nhấn phím chứ không phải là 1 ứng dụng đang sendInput Không ?

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    vấn đề này mình cũng đang quan tâm và cũng đang nghiên cứu. hook phím mà do SendInput (hay keybd_event) thì hàm học nó đều hiểu là bấm phím. thành thử ra rằng ta send 1 phím 'v' thì nó sẽ hiểu nhầm là bấm phím liên tục, ->vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv...

    Bạn nào có giải pháp giúp với

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thằng Unikey nó xử lý thế này:

    VD như bấm 2 phím o và w thì nó sẽ tự động send 1 phím backspace để xóa phím w và vẽ lại thành chữ ơ, vì thế khi Hook trong điều kiện có Unikey các chương trình Hook sẽ bị sai sạch, ai có cách gì thì chỉ giáo mình nhé

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Xin lỗi mọi người vì đào mộ, em chia sẻ phương pháp của em với thằng Unikey này:

    1. Cách rất củ chuối: Đó là đo thời gian.
    Bạn biết đấy, lúc unikey gửi backspace là ngay lập tức nó sẽ gửi tiếp 1 ký tự nữa tới. Như vậy ta dùng 1 biến bắt thời điểm gõ backspcae và thời thời điểm ký tự tiếp theo tới. Nếu giá tri nó nhỏ (em đã đo sử dụng phím điện thoại BB 9900 (1.2GHz) thì đã cố gắng hết sức thời gian nhanh nhất bấm nút là 0.05 giây) hơn rất nhiều nếu dùng clock() tính giây theo xung nhịp CPU. PP này mà khi lag thì ko bik thế nào.

    2. Kiểm tra ký tự gửi tới:
    Ngoại trừ phím backspace mà Unikey gửi tới thì ký tự gửi tiếp không phải là phím ký tự trên bàn phím (à, ă, â, ù, ừ, ...) nên mình sẽ check nó với bảng key code là ra.

    Tuy nhiên nếu người dùng sử dụng chức năng "Clipboard cho unicode" thì mệt hơn 1 chút, nhưng mà hiện tại thì các phần mềm và bản thân unikey điều chuyển sang chuẩn unicode rồi ít dùng chức năng này.

    Mong các bác góp ý cho phương pháp của em.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •