转:判断Caps Lock键是否打开,如果打开则关闭

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace 判断是否打开Caps_Lock键
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            IsCapsLocked();
        }

        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
        const int KEYEVENTF_EXTENDEDKEY = 0x1;
        const int KEYEVENTF_KEYUP = 0x2;

        private void IsCapsLocked()
        {            
            //if (Console.CapsLock)   //  方法1:表示Caps Lock 键打开
          if (Control.IsKeyLocked(Keys.CapsLock))   //  方法2:表示Caps Lock 键打开
            {
                MessageBox.Show("Caps Lock 键已打开,将关闭它");
                keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
                keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
            }
            else
            {
                MessageBox.Show("Caps Lock 键关闭");
            }
        }
    }
}

 

posted @ 2013-11-28 15:40  LS庆  阅读(1427)  评论(0编辑  收藏  举报