C#控制键盘按键的常用方法

来源:互联网 发布:石桥铺数据恢复 编辑:程序博客网 时间:2024/05/21 07:03
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespacesn设置键盘大小写
{
  publicpartial classForm1 : Form
  {
    constuint KEYEVENTF_EXTENDEDKEY = 0x1;
    constuint KEYEVENTF_KEYUP = 0x2;
    [DllImport("user32.dll")]
    staticextern shortGetKeyState(intnVirtKey);
    [DllImport("user32.dll")]
    staticextern voidkeybd_event(bytebVk, byte bScan, uint dwFlags, uint dwExtraInfo);
    publicenum VirtualKeys :byte
    {
      VK_NUMLOCK = 0x90,//数字锁定键
      VK_SCROLL = 0x91,//滚动锁定
      VK_CAPITAL = 0x14,//大小写锁定
      VK_A = 62
    }
    publicForm1()
    {
      InitializeComponent();
    }
    publicstatic boolGetState(VirtualKeys Key)
    {
      return(GetKeyState((int)Key)==1);
    }
    publicstatic voidSetState(VirtualKeys Key, boolState)
    {
      if(State != GetState(Key))
      {
        keybd_event((byte)Key, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
        keybd_event((byte)Key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
      }
    }
    //开启键盘大写
    privatevoid btnOpenCAPITAL_Click(objectsender, EventArgs e)
    {
      SetState(VirtualKeys.VK_CAPITAL,true);
    }
    //关闭键盘大写
    privatevoid btnCloseCAPITAL_Click(objectsender, EventArgs e)
    {
      SetState(VirtualKeys.VK_CAPITAL,false);
    }
    //开启键盘滚动锁定
    privatevoid btnOpenScroll_Click(objectsender, EventArgs e)
    {
      SetState(VirtualKeys.VK_SCROLL,true);
    }
    //关闭键盘滚动锁定
    privatevoid btnCloseScroll_Click(objectsender, EventArgs e)
    {
      SetState(VirtualKeys.VK_SCROLL,false);
    }
    //开启键盘数字锁定键
    privatevoid btnOpenNum_Click(objectsender, EventArgs e)
    {
      SetState(VirtualKeys.VK_NUMLOCK,true);
    }
    //关闭键盘数字锁定键
    privatevoid btnCloseNum_Click(objectsender, EventArgs e)
    {
      SetState(VirtualKeys.VK_NUMLOCK,false);
    }
  }
}
0 0
原创粉丝点击