看得破的人,处处都是生机;

看不破的人,处处都是困境;

拿得起的人,处处都是担当;

拿不起的人,处处都是疏忽;

放得下的人,处处都是大道;

放不下的人,处处都是迷茫;

想得开的人,处处都是春天;

想不开的人,处处都是凋枯;

做何人,在自己;

小自我,大天地;

c# 一些关于鼠标键盘的常用API函数总结

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;

namespace ImitateForm
{
    public class WindowsForm
    {

        #region 定义api函数

        #region 热键

        // 注册热键   当前窗体句柄,热键id(不与其他热键重复),第一个组合键(alt,ctrl,shift,windows等),内容键   返回定义是否成功
        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool RegisterHotKey(IntPtr hWnd, int id, KeyModifiers fsModifiers, KeyCodes vk);
        // 注销热键,当热键注册之后,不在使用是注销掉   当前窗体句柄,热键id
        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool UnregisterHotKey(IntPtr hWnd, int id);

        #endregion

        #region 键盘

        //模拟键盘事件   键码,0,标识动作(按下,抬起),0
        [DllImport("user32.dll")]
        private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

        #endregion

        #region 鼠标

        // 鼠标执行动作   动作标识,dx:dy:(在动作为[MOUSEEVENTF_ABSOLUTE]的时候为相对位置,一般不使用(0)),一般不使用(0),一般不使用(0)
        [DllImport("user32.dll")]
        private static extern void mouse_event(long dwFlags, long dx, long dy, long dwData, long dwExtraInfo);
        // 设置鼠标位置   相对x轴坐标,相对y轴坐标
        [DllImport("user32.dll")]
        private static extern void SetCursorPos(int dx, int dy);
        // 获取鼠标当前位置   位置
        [DllImport("user32.dll")]
        private static extern void GetCursorPos(ref Point lpPoint);

        #endregion

        #region 窗体

        //查找窗口  窗口类名,窗口标题名称
        [DllImport("user32.dll")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        //激活窗体(获得窗体焦点) 窗体句柄
        [DllImport("user32.dll")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);
        //获取当前(激活,活动)窗口句柄
        [DllImport("user32.dll")]
        private static extern IntPtr GetForegroundWindow();
        //获得指定窗口的进程和线程ID 窗口句柄, ID
        [DllImport("User32.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
        private static extern int GetWindowThreadProcessId(IntPtr hwnd,out int ID);
        //获取窗口的大小和位置 窗口句柄,大小位置结构
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool GetWindowRect(IntPtr hWnd, ref Rectangular lpRect);
        //设置窗口的显示方式 窗口句柄,显示方式
        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        private static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
        //获取窗口标题 窗口句柄,标题,最大值
        [DllImport("user32.dll", SetLastError = true)]
        private static extern int GetWindowText(IntPtr hwnd, StringBuilder ipstring, int n);
        //获取窗口的类名字 窗口句柄,类名,最大值
        [DllImport("user32.dll")]
        private static extern int GetClassName(IntPtr hwnd,StringBuilder ipstring, int n);
        //根据指定坐标获取窗口的句柄 坐标
        [DllImport("user32.dll")]
        private static extern IntPtr WindowFromPoint(Point p);
        //查找子窗口从排在给定的子窗口后面的下一个子窗口开始, 父窗口句柄(如果为null,则以桌面为主),子窗口句柄(如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始)(如果这两个同时为null,则函数查找所有的顶层窗口及消息窗口),类名字符串,窗口名称
        [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
        private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpzzClass, string lpszWindow);
        //将指定的消息发送到一个或多个窗口,此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回 接收消息的窗口的句柄,用于区别其他消息的常量值,通常是一个与消息有关的常量值(可选),是一个指向内存中数据的指针
        [DllImport("user32.dll", EntryPoint = "SendMessage")]
        private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, string lParam);
        //获得父窗口句柄 当前窗口句柄
        [DllImport("user32.dll", EntryPoint = "GetParent")]
        private static extern IntPtr GetParent(IntPtr hWnd);
        //移动,改变窗体
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int MoveWindow(IntPtr hwnd, int x, int y, int nWidth, int nHeight, bool bRepaint);
        //
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
        private static extern int ScreenToClient(IntPtr hWnd, ref Rectangle rect);

        #endregion

        #endregion

        #region 外部链接字段及使用类

        /// <summary>
        /// 键盘操作类[SendKeys,也是键盘操作类]
        /// </summary>
        public static class Keyboard
        {
            /// <summary> 
            /// 模拟键盘动作
            /// </summary> 
            /// <param name="bVk">按键的虚拟键值</param> 
            /// <param name="dwFlags">选项标志: keydown:0, keyup:2</param> 
            public static void Event(KeyCodes bVk, KeyboardEventF dwFlags)
            {
                if (bVk != KeyCodes.None)
                {
                    switch (dwFlags)
                    {
                        case KeyboardEventF.Key:
                            keybd_event((byte)bVk, 0, 0, 0);
                            keybd_event((byte)bVk, 0, 2, 0);
                            break;
                        default:
                            keybd_event((byte)bVk, 0, (int)dwFlags, 0);
                            break;
                    }
                }
            }
            /// <summary> 
            /// 一系列组合键的完成 
            /// </summary> 
            /// <param name="bVk">键集合</param>
            public static void Event(params KeyCodes[] keys)
            {
                for (int i = 0; i < keys.Length; i++)
                    if (keys[i] != KeyCodes.None)
                        keybd_event((byte)keys[i], 0, 0, 0);
                for (int i = keys.Length - 1; i >= 0; i--)
                    if (keys[i] != KeyCodes.None)
                        keybd_event((byte)keys[i], 0, 2, 0);
            }
            /// <summary>
            /// 注册热键
            ///     使用实例:
            ///        const int WM_HOTKEY = 0x0312;  
            ///        switch (m.Msg) 
            ///        {
            ///             case WM_HOTKEY: 
            ///             switch (m.WParam.ToInt32()) 
            ///             { 
            ///                 case 103: 
            ///                     System.Windows.Forms.MessageBox.Show("Test"); 
            ///                 break; 
            ///             } 
            ///             break; 
            ///         } 
            /// </summary>
            /// <param name="hWnd">窗口句柄</param>
            /// <param name="id">热键id</param>
            /// <param name="fsModifiers">第一个组合键(alt,shift....)</param>
            /// <param name="vk">第二个组合键</param>
            /// <returns>是否注册成功</returns>
            public static bool Register(IntPtr hWnd, int id, KeyModifiers fsModifiers, KeyCodes vk)
            {
                return RegisterHotKey(hWnd, id, fsModifiers, vk);
            }
            /// <summary> 
            /// 销毁热键
            /// </summary> 
            /// <param name="hWnd">窗口句柄</param> 
            /// <param name="id">热键的ID</param> 
            /// <returns>是否销毁成功</returns> 
            public static bool Unregister(IntPtr hWnd, int id)
            {
                return UnregisterHotKey(hWnd, id);
            }
        }
        /// <summary>
        /// 鼠标操作类
        /// </summary>
        public static class Mouses
        {
            static Mouses() 
            {
                dblclickTime = 100;
                _p = new Point();
            }
            private static Point _p;
            private static int dblclickTime;
            /// <summary>
            /// 鼠标双击时间,默认为100毫秒
            /// </summary>
            public static int DblclickTime
            {
                get { return dblclickTime; }
                set { dblclickTime = value; }
            }
            /// <summary> 
            /// 鼠标动作 
            /// </summary> 
            /// <param name="mouseevent">动作类型</param> 
            public static void Event(MouseEventF mouseevent)
            {
                switch (mouseevent)
                {
                    case MouseEventF.Left:
                        mouse_event(0x0002, 0, 0, 0, 0);
                        mouse_event(0x0004, 0, 0, 0, 0);
                        break;
                    case MouseEventF.Right:
                        mouse_event(0x0008, 0, 0, 0, 0);
                        mouse_event(0x0010, 0, 0, 0, 0);
                        break;
                    case MouseEventF.Middle:
                        mouse_event(0x0020, 0, 0, 0, 0);
                        mouse_event(0x0040, 0, 0, 0, 0);
                        break;
                    case MouseEventF.LeftDblclick:
                        mouse_event(0x0002, 0, 0, 0, 0);
                        mouse_event(0x0004, 0, 0, 0, 0);
                        if (DblclickTime > 1)
                            System.Threading.Thread.Sleep(DblclickTime);
                        mouse_event(0x0002, 0, 0, 0, 0);
                        mouse_event(0x0004, 0, 0, 0, 0);
                        break;
                    case MouseEventF.RightDblclick:
                        mouse_event(0x0008, 0, 0, 0, 0);
                        mouse_event(0x0010, 0, 0, 0, 0);
                        if (DblclickTime > 1)
                            System.Threading.Thread.Sleep(DblclickTime);
                        mouse_event(0x0008, 0, 0, 0, 0);
                        mouse_event(0x0010, 0, 0, 0, 0);
                        break;
                    case MouseEventF.MiddleDblclick:
                        mouse_event(0x0020, 0, 0, 0, 0);
                        mouse_event(0x0040, 0, 0, 0, 0);
                        if (DblclickTime > 1)
                            System.Threading.Thread.Sleep(DblclickTime);
                        mouse_event(0x0020, 0, 0, 0, 0);
                        mouse_event(0x0040, 0, 0, 0, 0);
                        break;
                    default:
                        mouse_event((long)mouseevent, 0, 0, 0, 0);
                        break;
                }
            }
            /// <summary> 
            /// 鼠标动作 ,针对于鼠标的相对位置参数(MOUSEEVENTF_ABSOLUTE)
            /// </summary> 
            /// <param name="dx">根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动</param> 
            /// <param name="dy">根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动</param> 
            /// <param name="dwData">未使用   0</param> 
            /// <param name="dwExtraInfo">通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序</param> 
            public static void Event(long dx, long dy, long dwData, long dwExtraInfo)
            {
                mouse_event(0x8000, dx, dy, dwData, dwExtraInfo);
            }
            /// <summary> 
            /// 设置鼠标的位置 
            /// </summary> 
            /// <param name="x">X坐标</param> 
            /// <param name="y">Y坐标</param> 
            public static void SetPoint(int x, int y)
            {
                SetCursorPos(x, y);
            }
            /// <summary> 
            /// 设置鼠标的位置 
            /// </summary> 
            /// <param name="p">位置</param> 
            public static void SetPoint(Point p)
            {
                SetCursorPos(p.X, p.Y);
            }
            /// <summary> 
            /// 获取鼠标的位置 
            /// </summary> 
            /// <returns>位置</returns> 
            public static Point GetPoint()
            {
                GetCursorPos(ref _p);
                return _p;
            }
        }
        /// <summary>
        /// 窗体操作类
        /// </summary>
        public static class Forms
        {

            /// <summary>
            /// 查找窗体
            /// </summary>
            /// <param name="formname">窗体标题名称</param>
            /// <returns>窗体句柄</returns>
            public static IntPtr FindForm(string formname)
            {
                return FindWindow(null, formname);
            }
            /// <summary>
            /// 查找窗体
            /// </summary>
            /// <param name="classname">窗体类名称</param>
            /// <param name="formname">窗体标题</param>
            /// <returns>窗体句柄</returns>
            public static IntPtr FindForm(string classname, string formname)
            {
                return FindWindow(classname, formname);
            }
            /// <summary>
            /// 获取当前活动窗体
            /// </summary>
            /// <returns>窗体句柄</returns>
            public static IntPtr GetForegroundForm()
            {
                return GetForegroundWindow();
            }
            /// <summary>
            /// 给指定句柄窗体设置焦点,或者激活窗体
            /// </summary>
            /// <param name="iphw">窗体句柄</param>
            /// <returns>是否成功</returns>
            public static bool SetForegroundForm(IntPtr iphw)
            {
                return SetForegroundWindow(iphw);
            }
            /// <summary>
            /// 获取指定窗体句柄的进程和线程Id
            /// </summary>
            /// <param name="iphw">窗体句柄</param>
            /// <param name="id">返回时进程Id</param>
            /// <returns>创建该窗体的线程Id</returns>
            public static int GetFormThreadProcessId(IntPtr iphw, out int id)
            {
                return GetWindowThreadProcessId(iphw, out id);
            }
            /// <summary>
            /// 返回指定句柄窗体的进程和线程组成的数组
            /// </summary>
            /// <param name="iphw">窗体句柄</param>
            /// <returns>进程,线程组成的数组 a[0]: 线程Id, a[1]: 进程Id</returns>
            public static int[] GetFormThreadProcessId(IntPtr iphw)
            {
                int[] ret = new int[2];
                ret[0] = GetWindowThreadProcessId(iphw, out ret[1]);
                return ret;
            }
            /// <summary>
            /// 获取窗体的大小和位置
            /// </summary>
            /// <param name="iphw">窗体句柄</param>
            /// <param name="rgl">大小和位置</param>
            /// <returns>是否成功</returns>
            public static bool GetFormRect(IntPtr iphw, ref Rectangular rgl)
            {
                return GetWindowRect(iphw, ref rgl);
            }
            /// <summary>
            /// 获取窗体的大小和位置
            /// </summary>
            /// <param name="iphw">窗体句柄</param>
            /// <returns>是否成功</returns>
            public static Rectangular GetFormRect(IntPtr iphw)
            {
                Rectangular rgl = new Rectangular();
                GetWindowRect(iphw, ref rgl);
                return rgl;
            }
            /// <summary>
            /// 按照方式显示窗体
            /// </summary>
            /// <param name="iphw">窗体句柄</param>
            /// <param name="sw">窗体显示方式,还原,最小化,最大化</param>
            /// <returns></returns>
            public static int ShowForm(IntPtr iphw, ShowWindowF sw)
            {
                return ShowWindow(iphw, (int)sw);
            }
            /// <summary>
            /// 获取窗体标题
            /// </summary>
            /// <param name="hwnd">窗体句柄</param>
            /// <param name="ipstring">标题名称</param>
            /// <param name="n">最大值</param>
            /// <returns></returns>
            public static int GetFormTitleName(IntPtr hwnd, StringBuilder ipstring, int n)
            {
                return GetWindowText(hwnd, ipstring, n);
            }
            /// <summary>
            /// 获得窗体的类名
            /// </summary>
            /// <param name="hwnd">窗体句柄</param>
            /// <param name="ipstring">类名称</param>
            /// <param name="n">最大值</param>
            /// <returns></returns>
            public static int GetFormClassName(IntPtr hwnd,StringBuilder ipstring, int n)
            {
                return GetClassName(hwnd,ipstring, n);
            }
            /// <summary>
            /// 获取窗体标题
            /// </summary>
            /// <param name="hwnd">窗体句柄</param>
            /// <returns></returns>
            public static StringBuilder GetFormTitleName(IntPtr hwnd)
            {
                StringBuilder sb = new StringBuilder();
                sb.Capacity = 999;
                GetWindowText(hwnd, sb, 998);
                return sb;
            }
            /// <summary>
            /// 获得窗体的类名
            /// </summary>
            /// <param name="hwnd">窗体句柄</param>
            /// <returns></returns>
            public static StringBuilder GetFormClassName(IntPtr hwnd)
            {
                StringBuilder sb = new StringBuilder();
                sb.Capacity = 999;
                GetWindowText(hwnd,sb, 998);
                return sb;
            }
            /// <summary>
            /// 获取坐标处的窗体句柄
            /// </summary>
            /// <param name="p">坐标</param>
            /// <returns>窗体句柄</returns>
            public static IntPtr GetFormByPoint(Point p)
            {
                return WindowFromPoint(p);
            }
            /// <summary>
            /// 查找子窗口
            /// </summary>
            /// <returns></returns>
            public static IntPtr FindFormEx()
            {
                return FindWindowEx(IntPtr.Zero, IntPtr.Zero, null, null);
            }
            /// <summary>
            /// 查找子窗口
            /// </summary>
            /// <param name="parent">父窗口句柄</param>
            /// <param name="child">子窗口句柄</param>
            /// <param name="classname">类名</param>
            /// <param name="titlename">标题名称</param>
            /// <returns>子窗体句柄</returns>
            public static IntPtr FindFormEx(IntPtr parent, IntPtr child, string classname, string titlename)
            {
                return FindWindowEx(parent, child, classname, titlename);
            }
            /// <summary>
            /// 查找子窗口
            /// </summary>
            /// <param name="parent">父窗口句柄</param>
            /// <param name="child">子窗口句柄</param>
            /// <param name="titlename">标题名称</param>
            /// <returns>子窗口句柄</returns>
            public static IntPtr FindFormEx(IntPtr parent, IntPtr child, string titlename)
            {
                return FindWindowEx(parent, child, null, titlename);
            }
            /// <summary>
            /// 将指定的消息发送到一个或多个窗口
            /// </summary>
            /// <param name="hwnd">窗口句柄</param>
            /// <param name="wMsg">消息类型</param>
            /// <param name="wParam">附加信息</param>
            /// <param name="lParam">附加信息</param>
            /// <returns>消息执行结果</returns>
            public static int SendMessageToForm(IntPtr hwnd, int wMsg, IntPtr wParam, string ipmsg)
            {
                return SendMessage(hwnd, wMsg, wParam, ipmsg);
            }
            /// <summary>
            /// 将指定的消息发送到一个或多个窗口
            /// </summary>
            /// <param name="hwnd">窗口句柄</param>
            /// <param name="wMsg">消息类型</param>
            /// <param name="ipmsg">消息内容</param>
            /// <returns>消息执行结果</returns>
            public static int SendMessageToForm(IntPtr hwnd, int wMsg, string ipmsg)
            {
                return SendMessage(hwnd, wMsg, IntPtr.Zero, ipmsg);
            }
            /// <summary>
            /// 获取父窗口句柄
            /// </summary>
            /// <param name="lphwnd">当前窗口句柄</param>
            /// <returns></returns>
            public static IntPtr GetParentForm(IntPtr lphwnd)
            {
                return GetParent(lphwnd);
            }
            /// <summary>
            /// 移动改变窗体
            /// </summary>
            /// <param name="hwnd">窗体句柄</param>
            /// <param name="x">x坐标</param>
            /// <param name="y">y坐标</param>
            /// <param name="nWidth">宽度</param>
            /// <param name="nHeight">高度</param>
            /// <param name="bRepaint">是否要重画窗体</param>
            /// <returns></returns>
            public static int MoveForm(IntPtr hwnd, int x, int y, int nWidth, int nHeight, bool bRepaint)
            {
                return MoveWindow(hwnd, x, y, nWidth, nHeight, bRepaint);
            }
            /// <summary>
            /// 移动改变窗体
            /// </summary>
            /// <param name="hwnd">窗体句柄</param>
            /// <param name="rect">位置大小</param>
            /// <returns></returns>
            public static int MoveForm(IntPtr hwnd, Rectangle rect)
            {
                return MoveWindow(hwnd, rect.X, rect.Y, rect.Width, rect.Height, true);
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="hWnd">窗体句柄</param>
            /// <param name="rect">窗体位置</param>
            /// <returns></returns>
            public static int ScreenToClients(IntPtr hWnd, ref Rectangle rect)
            {
                return ScreenToClient(hWnd, ref rect);
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="hWnd">窗体句柄</param>
            /// <returns></returns>
            public static Rectangle ScreenToClients(IntPtr hWnd)
            {
                Rectangle rect = new Rectangle();
                ScreenToClient(hWnd, ref rect);
                return rect;
            }
        }

        #endregion

    }

    #region 其他辅助类与枚举

    /// <summary>
    /// 获取窗口的位置类
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct Rectangular
    {
        public int Left; //最左坐标
        public int Top; //最上坐标
        public int Right; //最右坐标
        public int Bottom; //最下坐标
    }
    /// <summary>
    /// 展示窗体方式
    /// </summary>
    public enum ShowWindowF : int
    {
        /// <summary>
        /// 正常模式
        /// </summary>
        Normal = 1,
        /// <summary>
        /// 最小化
        /// </summary>
        Minimize = 2,
        /// <summary>
        /// 最大化
        /// </summary>
        Maximize = 3,
        /// <summary>
        /// 关闭
        /// </summary>
        Close = 0
    }
    /// <summary> 
    /// 定义了辅助键的名称,注册热键使用
    /// </summary> 
    [Flags]
    public enum KeyModifiers
    {
        /// <summary>
        /// 没有
        /// </summary>
        NoneKey = 0,
        /// <summary>
        /// alt键
        /// </summary>
        AltKey = 1,
        /// <summary>
        /// ctrl键
        /// </summary>
        CtrlKey = 2,
        /// <summary>
        /// shift键
        /// </summary>
        ShiftKey = 4,
        /// <summary>
        /// windows键
        /// </summary>
        WindowsKey = 8
    }
    /// <summary> 
    /// 鼠标动作 
    /// </summary> 
    public enum MouseEventF : long
    {
        /// <summary> 
        /// 移动 
        /// </summary> 
        Move = 0x0001,
        /// <summary> 
        /// 左键按下 
        /// </summary> 
        LeftDown = 0x0002,
        /// <summary> 
        /// 左键抬起 
        /// </summary> 
        LeftUp = 0x0004,
        /// <summary> 
        /// 右键按下 
        /// </summary> 
        RightDown = 0x0008,
        /// <summary> 
        /// 右键抬起 
        /// </summary> 
        RightUp = 0x0010,
        /// <summary> 
        /// 中间键按下 
        /// </summary> 
        MiddleDowm = 0x0020,
        /// <summary> 
        /// 中间键抬起 
        /// </summary> 
        MiddleUp = 0x0040,
        /// <summary> 
        /// [不经常使用] dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 
        /// </summary> 
        Absolute = 0x8000,
        /// <summary> 
        /// 左键完整操作,按下抬起 
        /// </summary> 
        Left,
        /// <summary> 
        /// 右键完整操作,按下抬起 
        /// </summary> 
        Right,
        /// <summary> 
        /// 中间键完整操作,按下抬起 
        /// </summary> 
        Middle,
        /// <summary> 
        /// 左键双击 
        /// </summary> 
        LeftDblclick,
        /// <summary> 
        /// 右键双击 
        /// </summary> 
        RightDblclick,
        /// <summary> 
        /// 中间键双击 
        /// </summary> 
        MiddleDblclick
    }
    /// <summary>
    /// 键盘动作
    /// </summary>
    public enum KeyboardEventF : long
    {
        /// <summary> 
        /// 键按下 
        /// </summary> 
        KeyDown = 0x0,
        /// <summary> 
        /// 键抬起 
        /// </summary> 
        KeyUp = 0x2,
        /// <summary> 
        /// 完整按键 
        /// </summary> 
        Key
    }
    /// <summary>
    /// 常用键盘键码
    /// </summary>
    public enum KeyCodes : byte
    {
        /// <summary> 
        /// 没有按任何键 
        /// </summary> 
        None = 0,
        /// <summary> 
        /// 鼠标左按钮 
        /// </summary> 
        LeftMouse = 1,
        /// <summary> 
        /// 鼠标右按钮 
        /// </summary> 
        RightMouse = 2,
        /// <summary> 
        /// 鼠标中键(三个按钮的鼠标) 
        /// </summary> 
        MiddleMouse = 4,
        /// <summary> 
        /// Backspace 键 
        /// </summary> 
        BackspaceKey = 8,
        /// <summary> 
        /// Tab 键 
        /// </summary> 
        TabKey = 9,
        /// <summary> 
        /// Enter 键 
        /// </summary> 
        EnterKey = 13,
        /// <summary> 
        /// Shift 键 
        /// </summary> 
        ShiftKey = 16,
        /// <summary> 
        /// Ctrl 键 
        /// </summary> 
        CtrlKey = 17,
        /// <summary> 
        /// Alt 键 
        /// </summary> 
        AltKey = 18,
        /// <summary> 
        /// Caps Lock 键 
        /// </summary> 
        CapsLockKey = 20,
        /// <summary> 
        /// Esc 键 
        /// </summary> 
        EscapeKey = 27,
        /// <summary> 
        /// 空格键 
        /// </summary> 
        SpaceKey = 32,
        /// <summary> 
        /// Page Up 键 
        /// </summary> 
        PageUpKey = 33,
        /// <summary> 
        /// Page Down 键 
        /// </summary> 
        PageDownKey = 34,
        /// <summary> 
        /// End 键 
        /// </summary> 
        EndKey = 35,
        /// <summary> 
        /// Home 键 
        /// </summary> 
        HomeKey = 36,
        /// <summary> 
        /// 向左键 
        /// </summary> 
        LeftKey = 37,
        /// <summary> 
        /// 向上键 
        /// </summary> 
        UpKey = 38,
        /// <summary> 
        /// 向右键 
        /// </summary> 
        RightKey = 39,
        /// <summary> 
        /// 向下键 
        /// </summary> 
        DownKey = 40,
        /// <summary> 
        /// Insert 键 
        /// </summary> 
        InsertKey = 45,
        /// <summary> 
        /// Delete 键 
        /// </summary> 
        DeletKey = 46,
        /// <summary> 
        /// 0 键 
        /// </summary> 
        D0 = 48,
        /// <summary> 
        /// 1 键 
        /// </summary> 
        D1 = 49,
        /// <summary> 
        /// 2 键 
        /// </summary> 
        D2 = 50,
        /// <summary> 
        /// 3 键 
        /// </summary> 
        D3 = 51,
        /// <summary> 
        /// 4 键 
        /// </summary> 
        D4 = 52,
        /// <summary> 
        /// 5 键 
        /// </summary> 
        D5 = 53,
        /// <summary> 
        /// 6 键 
        /// </summary> 
        D6 = 54,
        /// <summary> 
        /// 7 键 
        /// </summary> 
        D7 = 55,
        /// <summary> 
        /// 8 键 
        /// </summary> 
        D8 = 56,
        /// <summary> 
        /// 9 键 
        /// </summary> 
        D9 = 57,
        /// <summary> 
        /// A 键 
        /// </summary> 
        A = 65,
        /// <summary> 
        /// B 键 
        /// </summary> 
        B = 66,
        /// <summary> 
        /// C 键 
        /// </summary> 
        C = 67,
        /// <summary> 
        /// D 键 
        /// </summary> 
        D = 68,
        /// <summary> 
        /// E 键 
        /// </summary> 
        E = 69,
        /// <summary> 
        /// F 键 
        /// </summary> 
        F = 70,
        /// <summary> 
        /// G 键 
        /// </summary> 
        G = 71,
        /// <summary> 
        /// H 键 
        /// </summary> 
        H = 72,
        /// <summary> 
        /// I 键 
        /// </summary> 
        I = 73,
        /// <summary> 
        /// J 键 
        /// </summary> 
        J = 74,
        /// <summary> 
        /// K 键 
        /// </summary> 
        K = 75,
        /// <summary> 
        /// L 键 
        /// </summary> 
        L = 76,
        /// <summary> 
        /// M 键 
        /// </summary> 
        M = 77,
        /// <summary> 
        /// N 键 
        /// </summary> 
        N = 78,
        /// <summary> 
        /// O 键 
        /// </summary> 
        O = 79,
        /// <summary> 
        /// P 键 
        /// </summary> 
        P = 80,
        /// <summary> 
        /// Q 键 
        /// </summary> 
        Q = 81,
        /// <summary> 
        /// R 键 
        /// </summary> 
        R = 82,
        /// <summary> 
        /// S 键 
        /// </summary> 
        S = 83,
        /// <summary> 
        /// T 键 
        /// </summary> 
        T = 84,
        /// <summary> 
        /// U 键 
        /// </summary> 
        U = 85,
        /// <summary> 
        /// V 键 
        /// </summary> 
        V = 86,
        /// <summary> 
        /// W 键 
        /// </summary> 
        W = 87,
        /// <summary> 
        /// X 键 
        /// </summary> 
        X = 88,
        /// <summary> 
        /// Y 键 
        /// </summary> 
        Y = 89,
        /// <summary> 
        /// Z 键 
        /// </summary> 
        Z = 90,
        /// <summary> 
        /// 左 Windows 徽标键(Microsoft Natural Keyboard,人体工程学键盘) 
        /// </summary> 
        LeftWindowsKey = 91,
        /// <summary> 
        /// 右 Windows 徽标键(Microsoft Natural Keyboard,人体工程学键盘) 
        /// </summary> 
        RrightWindowsKey = 92,
        /// <summary> 
        /// 应用程序键(Microsoft Natural Keyboard,人体工程学键盘) 
        /// </summary> 
        Apps = 93,
        /// <summary> 
        /// 计算机睡眠键 
        /// </summary> 
        Sleep = 95,
        /// <summary> 
        /// 数字键盘上的 0 键 
        /// </summary> 
        NumPad0 = 96,
        /// <summary> 
        /// 数字键盘上的 1 键 
        /// </summary> 
        NumPad1 = 97,
        /// <summary> 
        /// 数字键盘上的 2 键 
        /// </summary> 
        NumPad2 = 98,
        /// <summary> 
        /// 数字键盘上的 3 键 
        /// </summary> 
        NumPad3 = 99,
        /// <summary> 
        /// 数字键盘上的 4 键 
        /// </summary> 
        NumPad4 = 100,
        /// <summary> 
        /// 数字键盘上的 5 键 
        /// </summary> 
        NumPad5 = 101,
        /// <summary> 
        /// 数字键盘上的 6 键 
        /// </summary> 
        NumPad6 = 102,
        /// <summary> 
        /// 数字键盘上的 7 键 
        /// </summary> 
        NumPad7 = 103,
        /// <summary> 
        /// 数字键盘上的 8 键 
        /// </summary> 
        NumPad8 = 104,
        /// <summary> 
        /// 数字键盘上的 9 键 
        /// </summary> 
        NumPad9 = 105,
        /// <summary> 
        /// 乘号键 
        /// </summary> 
        MultiplyKey = 106,
        /// <summary> 
        /// 加号键 
        /// </summary> 
        AddKey = 107,
        /// <summary> 
        /// 分隔符键 
        /// </summary> 
        SeparatorKey = 108,
        /// <summary> 
        /// 减号键 
        /// </summary> 
        SubtractKey = 109,
        /// <summary> 
        /// 句点键 
        /// </summary> 
        DecimalKey = 110,
        /// <summary> 
        /// 除号键 
        /// </summary> 
        DivideKey = 111,
        /// <summary> 
        /// F1 键 
        /// </summary> 
        F1 = 112,
        /// <summary> 
        /// F2 键 
        /// </summary> 
        F2 = 113,
        /// <summary> 
        /// F3 键 
        /// </summary> 
        F3 = 114,
        /// <summary> 
        /// F4 键 
        /// </summary> 
        F4 = 115,
        /// <summary> 
        /// F5 键 
        /// </summary> 
        F5 = 116,
        /// <summary> 
        /// F6 键 
        /// </summary> 
        F6 = 117,
        /// <summary> 
        /// F7 键 
        /// </summary> 
        F7 = 118,
        /// <summary> 
        /// F8 键 
        /// </summary> 
        F8 = 119,
        /// <summary> 
        /// F9 键 
        /// </summary> 
        F9 = 120,
        /// <summary> 
        /// F10 键 
        /// </summary> 
        F10 = 121,
        /// <summary> 
        /// F11 键 
        /// </summary> 
        F11 = 122,
        /// <summary> 
        /// F12 键 
        /// </summary> 
        F12 = 123,
        /// <summary> 
        /// F13 键 
        /// </summary> 
        F13 = 124,
        /// <summary> 
        /// F14 键 
        /// </summary> 
        F14 = 125,
        /// <summary> 
        /// F15 键 
        /// </summary> 
        F15 = 126,
        /// <summary> 
        /// F16 键 
        /// </summary> 
        F16 = 127,
        /// <summary> 
        /// F17 键 
        /// </summary> 
        F17 = 128,
        /// <summary> 
        /// F18 键 
        /// </summary> 
        F18 = 129,
        /// <summary> 
        /// F19 键 
        /// </summary> 
        F19 = 130,
        /// <summary> 
        /// F20 键 
        /// </summary> 
        F20 = 131,
        /// <summary> 
        /// F21 键 
        /// </summary> 
        F21 = 132,
        /// <summary> 
        /// F22 键 
        /// </summary> 
        F22 = 133,
        /// <summary> 
        /// F23 键 
        /// </summary> 
        F23 = 134,
        /// <summary> 
        /// F24 键 
        /// </summary> 
        F24 = 135,
        /// <summary> 
        /// Num Lock 键 
        /// </summary> 
        NumLock = 144,
        /// <summary> 
        /// Scroll Lock 键 
        /// </summary> 
        ScrollLock = 145,
        /// <summary> 
        /// 左 Shift 键 
        /// </summary> 
        LeftShiftKey = 160,
        /// <summary> 
        /// 右 Shift 键 
        /// </summary> 
        RightShiftKey = 161,
        /// <summary> 
        /// 左 Ctrl 键 
        /// </summary> 
        LeftControlKey = 162,
        /// <summary> 
        /// 右 Ctrl 键 
        /// </summary> 
        RightControlKey = 163,
        /// <summary> 
        /// 左 Alt 键 
        /// </summary> 
        LeftMenu = 164,
        /// <summary> 
        /// 右 Alt 键 
        /// </summary> 
        RightMenu = 165,
        /// <summary> 
        /// 美式标准键盘上的 OEM 分号键(Windows 2000 或更高版本) 
        /// </summary> 
        OemSemicolon = 186,
        /// <summary> 
        /// 任何国家/地区键盘上的 OEM 加号键(Windows 2000 或更高版本) 
        /// </summary> 
        Oemplus = 187,
        /// <summary> 
        /// 任何国家/地区键盘上的 OEM 逗号键(Windows 2000 或更高版本) 
        /// </summary> 
        Oemcomma = 188,
        /// <summary> 
        /// 任何国家/地区键盘上的 OEM 减号键(Windows 2000 或更高版本) 
        /// </summary> 
        OemMinus = 189,
        /// <summary> 
        /// 任何国家/地区键盘上的 OEM 句点键(Windows 2000 或更高版本) 
        /// </summary> 
        OemPeriod = 190,
        /// <summary> 
        /// 美式标准键盘上的 OEM 问号键(Windows 2000 或更高版本) 
        /// </summary> 
        OemQuestion = 191,
        /// <summary> 
        /// 美式标准键盘上的 OEM 波形符键(Windows 2000 或更高版本) 
        /// </summary> 
        Oemtilde = 192,
        /// <summary> 
        /// 美式标准键盘上的 OEM 左括号键(Windows 2000 或更高版本) 
        /// </summary> 
        OemOpenBrackets = 219,
        /// <summary> 
        /// 美式标准键盘上的 OEM 管道键(Windows 2000 或更高版本) 
        /// </summary> 
        OemPipe = 220,
        /// <summary> 
        /// 美式标准键盘上的 OEM 右括号键(Windows 2000 或更高版本) 
        /// </summary> 
        OemCloseBrackets = 221,
        /// <summary> 
        /// 美式标准键盘上的 OEM 单/双引号键(Windows 2000 或更高版本) 
        /// </summary> 
        OemQuotes = 222,
        /// <summary> 
        /// RT 102 键的键盘上的 OEM 尖括号或反斜杠键(Windows 2000 或更高版本) 
        /// </summary> 
        OemBackslash = 226
    }

    #endregion
}

  

posted @ 2014-09-03 10:42  心电心  阅读(933)  评论(0)    收藏  举报