| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Windows.Forms;
- namespace Azylee.Core.WindowsUtils.APIUtils
- {
- public class WindowsHotKeyAPI
- {
- //======================================
- //如果函数执行成功,返回值不为0。
- //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。
- /// <summary>
- /// 注册热键
- /// </summary>
- /// <param name="hWnd">要定义热键的窗口的句柄</param>
- /// <param name="id">定义热键ID(不能与其它ID重复) </param>
- /// <param name="fsModifiers">标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效</param>
- /// <param name="vk">定义热键的内容</param>
- /// <returns></returns>
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool RegisterHotKey(IntPtr hWnd, int id, KeyModifiers fsModifiers, Keys vk);
- /// <summary>
- /// 删除热键
- /// </summary>
- /// <param name="hWnd">要取消热键的窗口的句柄</param>
- /// <param name="id">要取消热键的ID</param>
- /// <returns></returns>
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
- //定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)
- [Flags()]
- public enum KeyModifiers
- {
- None = 0,
- Alt = 1,
- Ctrl = 2,
- Shift = 4,
- WindowsKey = 8
- }
- }
- }
|