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 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    In ra chữ Trung Quốc khi hook bàn phím?!

    Mình đang tập viết Hook sau khi đọc bài của Sonhn
    http://diendan.congdongcviet.com/showthread.php?t=3407
    Mình thêm 1 chút như sau: tạo 1 mảng bỏ các kí tự vào đó, khi nào gặp phím ENTER thì in ra messagebox ... nhưng đau đớn thay (tại mình gà quá.. mới học lập trình win32) ... in ra toàn chữ trung quốc..
    Tiện thể ai đó giúp mình cách sử dụng mảng, cấp phát động trên win32 với (ko biết nói yay có đúng ko!?)

    Mã:
    #include <windows.h> //vùng nhớ dùng chung, chứa biến handle của Hook#pragma data_seg("SHARED_DATA")HHOOK   hGlobalHook = NULL;#pragma data_seg() //hàm lọc sự kiện nhấn phím__declspec(dllexport) LRESULT CALLBACK FillKeyboard(int nCode, WPARAM wParam, LPARAM lParam){    static int iChCount = 0;    static PTCHAR str;    str = (LPTSTR) GlobalAlloc(GPTR,sizeof(TCHAR));//     if ((nCode == HC_ACTION) && (wParam == 13))//     {//         MessageBox(0, (LPCWSTR)L"Ấn Enter à!! :)", (LPCWSTR)L"^_____^", 0);//         return 1;//     }    if (nCode == HC_ACTION)    {//      swprintf_s(str,L"%c",(TCHAR) wParam);//      MessageBox(0,str,L"KAKA",0);         switch (wParam)        {        case 0x0D:            {                str [ iChCount++ ] = (TCHAR) wParam;                MessageBox(0,str,L"KAKA",0);                break;            }        case 0x09:            {                for ( int i = 0; i < 4; i ++ )                str [ iChCount++ ] = (TCHAR) 0x20;                break;            }        default:            {                ch = (TCHAR) wParam;                str [ iChCount++ ] = ch;                break;            }        }    }     //gọi Filter Function kế tiếp trong chuỗi các Filter Function    return CallNextHookEx(hGlobalHook, nCode, wParam, lParam);} //hàm ấn định biến hGlobalHook tại vùng nhớ dùng chung__declspec(dllexport) void SetGlobalHookHandle(HHOOK hHook){   hGlobalHook = hHook;}
    Thanks mấy bro...!!!

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Có thể nói là: Sai một cách căn bản

    Tìm hiểu đi: msdn.microsoft.com/en-us/library/windows/desktop/ms644984%28v=vs.85%29.aspx

 

 

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
  •