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

    Hook Keyboard trên Firefox. Giúp mình?

    hj, mình mới tập tành Hook hiếc. Mới làm cho nó bắt được Message khi gõ phím.

    Bây giờ mình muốn khi gõ "A", Hook "chụp lại" và chuyển thành "B" hay bất kì ký tự nào khác thì phải làm sao?

    Chương trình hook Mình làm trên MFC nhưng vào FireFox không có tác dụng. Các bạn giúp mình vấn đề này với.

    Còn nữa, khi mình gõ 1 phím, nó bắt 2 Message thì phải:
    VD:
    Đoạn code xử lý Hook mình viết:
    AfxMessageBox(_T("Chao Socket"));

    nó ra 2 cái MSG box lun, ko hỉu vì sao

    Các bạn đừng trách mình ko post code lên nhé. mình chỉ làm theo hướng dẫn của bài viết http://forums.congdongcviet.com/showthread.php?t=3407 chỉ có điều làm cho nó chạy trên MFC mà thôi

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Socket
    Còn nữa, khi mình gõ 1 phím, nó bắt 2 Message thì phải:
    VD:
    Đoạn code xử lý Hook mình viết:
    AfxMessageBox(_T("Chao Socket"));

    nó ra 2 cái MSG box lun, ko hỉu vì sao
    KeyUp và KeyDown! Cậu nên tìm hiểu thêm về cơ chế thông điệp bàn phím (có thể mua và xem cuốn: Lập trình Windows của thầy Lê Hữu Đạt).

    Trích dẫn Gửi bởi Socket
    Các bạn đừng trách mình ko post code lên nhé. mình chỉ làm theo hướng dẫn của bài viết http://forums.congdongcviet.com/showthread.php?t=3407 chỉ có điều làm cho nó chạy trên MFC mà thôi[/COLOR][/B][/SIZE]
    Post project lên đi; đừng ngần ngại; hướng dẫn của Sonhn đủ để cho các bạn có một ví dụ nhỏ về tập Hook Keyboard (WH_KEYBOARD); nhưng hãy tuỳ biến nó sao cho phù hợp với tư tưởng dự án của cậu,....

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ui, còn vụ bấm "a" thành "b" thì làm như thế nào vậy bạn?

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hãy xem thêm về KeyChar;........

  5. #5
    hj`, Ngồi vọc một hồi cũng phát hiện ra.
    Hàm PostMessage

    Có thể gửi Message khác. với giá trị wParam = wParam +1 ==> vậy là "a" sẽ thành "b"

    Mà không biết sao Hook ko hoạt động trong firefox

    petedrew cho mình cái yahoo nha, học hỏi xíu [IMG]images/smilies/smile.png[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Socket
    hj`, Ngồi vọc một hồi cũng phát hiện ra.
    Hàm PostMessage

    Có thể gửi Message khác. với giá trị wParam = wParam +1 ==> vậy là "a" sẽ thành "b"
    Đó là cách làm thông thường mà (gửi WM_CHAR)! (Bổ sung, nếu dùng PostMessage thì cũng nên xem thử thằng SendMessage; chú ý là chúng khác nhau vì cách đặt thông điệp trong hàng đợi thông điệp của App nhé).

    Trích dẫn Gửi bởi Socket
    Mà không biết sao Hook ko hoạt động trong firefox

    petedrew cho mình cái yahoo nha, học hỏi xíu [IMG]images/smilies/smile.png[/IMG]
    Có thể Mozzila firefox chặn Hook! Nhưng VietKey hoặc các bộ gõ khác vẫn hoạt động trên trình duyệt này bình thường cơ mà!


    Peter không công bố hòm thư kể từ ngày 10/6/2010 vì một số lý do đặc biệt; có gì hãy post thảo luận trên diễn đàn cho tiện....Hy vọng được cậu ủng hộ yêu cầu này và hãy tham gia diễn đàn thật nhiệt tình! Chúc thành công.

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    À, còn vấn đề nữa nhờ peter giúp:
    Mã nguồn PHP:
    extern "C" __declspec(dllexport) LRESULT CALLBACK TheHook(int code,WPARAM wParam,LPARAM lParam){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); if (code<0) return CallNextHookEx(hook,code,wParam,lParam); if ((code == HC_ACTION) && ((DWORD)lParam & 0x20000000)) { switch (wParam) { case VK_RIGHT: MessageBox(0, _T("aaaaa"), _T("bbbbb"),MB_OK); break; } return 1; } return CallNextHookEx(hook,code,wParam,lParam);}  
    Có cách nào khác xử lý cái lParam không? chứ nhớ Hằng thế kia nản quá

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Khi một phím được nhấn thì cậu phải làm như vậy
    Mã nguồn PHP:
    (code == HC_ACTION) && ((DWORD)lParam & 0x20000000)  
    ; nó thật đơn giản chứ có gì là đáng nản đâu? (Nhớ Hằng là thế nào? Peter chưa hiểu).

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hook keyboard hoặc mouse không nhất thiết phải dùng đến DLL,dơn giản nhất hãy đặt hàm filter trên file exe,có thể hook Toàn cục được

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi peterdrew
    Khi một phím được nhấn thì cậu phải làm như vậy
    Mã nguồn PHP:
    (code == HC_ACTION) && ((DWORD)lParam & 0x20000000)  
    ; nó thật đơn giản chứ có gì là đáng nản đâu? (Nhớ Hằng là thế nào? Peter chưa hiểu).
    ah, vd như:
    Mã nguồn PHP:
    IsExtended = 0x1000000 FlagScancode = 0xFF0000 IsALT = 0x20000000 IsPrevDown = 0x40000000 IsReleased = 0x80000000 KeyUp = 0xC0000000  
    mấy hằng số mình lượm trong mã nguồn Unikey.

 

 
Trang 1 của 2 12 CuốiCuối

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
  •