Exemple #1
0
        //Hook Procedure
        private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            //Kiem tra xem co thuc hien hay goi tiep ham CallNextHookEx
            if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN)
            {
                int vkCode = Marshal.ReadInt32(lParam);
                //Kiem tra xem shift co duoc an hay k
                if (vkCode == 0xA0)
                {
                    Shifts.SetShiftInt(1);
                }
                waitingchar.Add(vkCode);
                waitingword.Add(vkCode);
                chuyenChuCoDau();
                themDau();
                //Kiểm tra khi ấn dấu cách
                if (vkCode == 0x20)
                {
                    waitingword.Clear();
                    stack_word.Clear();
                    pos_nguyenam  = -1;
                    delete_char   = 0;
                    flagedit_word = 0;
                }

                //Kiem tra việc sửa nguyên âm
                if (flag == 1)
                {
                    //Hien thi chu o^ ra man hinh
                    vkCode = waitingchar[0];
                    waitingchar.RemoveAt(0);
                    delete_char = 1;
                    flag        = 0;
                    flagedit    = 1;        //Xoa ki tu hien thi tren man hinh 1 ki tu
                }

                //Kiểm tra sửa dấu cho từ
                if (OnKeyPressed != null && vkCode != 0xA0)
                {
                    OnKeyPressed(this, new KeyPressedArgs(vkCode));
                }
            }
            return(CallNextHookEx(_hookID, nCode, wParam, lParam));
        }
Exemple #2
0
 public KeyPressedArgs(int x)
 {
     if (Shifts.ShiftInt == 0)
     {
         if (x == 32)
         {
             KeyPressed = (char)x;
         }
         else
         {
             KeyPressed = (char)(x + 32);
         }
     }
     else
     {
         KeyPressed = (char)x;
     }
     Shifts.SetShiftInt(0);
 }