首先实现一个热键处理的类,内部调用win32API实现热键的基本操作
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace xxx
{
public delegate void HotkeyEventHandler(int hotKeyID);
public class HotkeyHelper : IMessageFilter
{
public event HotkeyEventHandler OnHotkey;
public enum KeyFlags
{
MOD_NONE = 0x0,
MOD_ALT = 0x1,
MOD_CONTROL = 0x2,
MOD_SHIFT = 0x4,
MOD_WIN = 0x8
}
private class NativeMethods
{
private NativeMethods()
{
}
#region WIN32 API
/// <summary>
/// 如果函数执行成功,返回值不为0。
/// 如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。.NET方法:Marshal.GetLastWin32Error()
/// </summary>
/// <param name="hWnd">要定义热键的窗口的句柄</param>
/// &