Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: [C#] Hướng dẫn bật tắt CapsLock

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    102

    Mặc định [C#] Hướng dẫn bật tắt CapsLock

    Hôm trước mình cần làm bật Tắt CapsLock trong C#. Tìm trên mạng cuối cùng cũng ra.
    Hoạt động rất tốt.

    Thư viện
    Code:
    using System.Runtime.InteropServices;
    Phần khai báo thư viện API và code chạy

    Code:
     [DllImport("user32.dll")]
            static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
    UIntPtr dwExtraInfo);
    
    //Hàm bật tắt capslock
            public void TurnOnCapsLock()
            {
                if (Control.IsKeyLocked(Keys.CapsLock) == true) // Checks Capslock is on
                {
                    //CapsLock đang ON rồi thì thôi. Không làm gì cả.
     
                }
                else
                {
               //Nếu CapsLock đang off thì bật lên
                    const int KEYEVENTF_EXTENDEDKEY = 0x1;
                    const int KEYEVENTF_KEYUP = 0x2;
                    keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
                    keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                    (UIntPtr)0);
    
                }
    }
    Nếu bạn muốn luôn bật cap lock mà không cần quan tâm nó đang on hay off thì chỉ gọi đến hàm TurnOnCapsLock() như bên dưới là được
    Code:
    [DllImport("user32.dll")]  
    static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,UIntPtr dwExtraInfo);
     public void TurnOnCapsLock()
            {
              
              
                    const int KEYEVENTF_EXTENDEDKEY = 0x1;
                    const int KEYEVENTF_KEYUP = 0x2;
                    keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
                    keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                    (UIntPtr)0);
    
                }

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    975

    using System.Runtime.InteropServices;
    Nó không phải là thư viện, nó chỉ là cách viết thu gọn - namespace.

    không có nó cũng được, chỉ viết đầy đủ namespace cho mỗi đối tượng trong code:
    Visual C# Code:
    1. //using System.Runtime.InteropServices;
    2.  
    3.         [System.Runtime.InteropServices.DllImport("user32.dll")]
    4.         static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);

  3. #3
    Ngày gia nhập
    08 2017
    Bài viết
    975

    Lôi nó lên, có có 5 sao, được hệ thống cho điểm cao!

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn