让大写灯亮或灭
谢谢!

解决方案 »

  1.   


    [DllImport("user32.dll")]
    static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
    private void button1_Click(object sender, EventArgs e)
    {
        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.   

    判断大小写状态:
    Control.IsKeyLocked(Keys.CapsLock);
      

  3.   

    const uint KEYEVENTF_EXTENDEDKEY = 0x1;
     const uint KEYEVENTF_KEYUP = 0x2;
    [DllImport("user32.dll")]
     static extern short GetKeyState(int nVirtKey);
    [DllImport("user32.dll")]
    static extern void keybd_event( byte bVk, byte bScan,  uint dwFlags,  uint dwExtraInfo );   public enum VirtualKeys: byte
       {
         VK_NUMLOCK = 0x90, //数字锁定键
        VK_SCROLL = 0x91,  //滚动锁定
        VK_CAPITAL = 0x14, //大小写锁定
        VK_A = 62
       }
        public static bool GetState(VirtualKeys Key)
        {
          return (GetKeyState((int)Key)==1);
        }
       public static void SetState(VirtualKeys Key, bool State)
        {
         if(State!=GetState(Key))
         {
          keybd_event((byte)Key,  0x45, KEYEVENTF_EXTENDEDKEY | 0,  0  );
         keybd_event((byte)Key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,  0 );
        }
      }