下载此文档

C#键盘钩子实现全局快捷键.docx


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
C# 键盘钩子实现全局快捷键本文介绍如何使用 Win32Api 创建键盘钩子,并编写一个使用全局快捷键的实例。工具/ 原料 Visual Studio (本文使用 VS2013 ,其他版本亦可)。基础知识 1 使用钩子之前,需要使用 SetWindowsHookEx() 函数创建钩子,使用完毕之后要 UnhookWindowsHookEx() 函数卸载钩子,“钩”到消息后操作系统会自动调用在创建钩子时注册的回调函数来处理消息,处理完后调用 CallNextHookEx() 函数等待或处理下一条消息。有关钩子的详细信息请见参考--C# 鼠标钩子,其中已介绍。 2 对于键盘钩子, 钩子类型为 WH_KEYBOARD_LL=13 , 只需要设置 SetWindowsHookEx 的 idHoo k 参数为 13 即可“钩”到键盘消息。关于钩子类型的资料见参考资料-- 钩子类型。 END 键盘钩子实例启动 VS ,新建 C# WinForm 项目,命名为“ Cs 键盘钩子”,如下: 对主窗口布局,如下: 添加 Win32Api 引用,代码如下: using System; using ; using ; using ; using ; using ; using ; using ; using ; public class Win32Api { #region 常数和结构 public const int WM_KEYDOWN = 0x100; public const int WM_KEYUP = 0x101; public const int WM_SYSKEYDOWN = 0x104; public const int WM_SYSKEYUP = 0x105; public const int WH_KEYBOARD_LL = 13; [ StructLayout ( LayoutKind .Sequential)] // 声明键盘钩子的封送结构类型 public class KeyboardHookStruct { public int vkCode; // 表示一个在 1到 254 间的虚似键盘码 public int scanCode; // 表示硬件扫描码 public int flags; public int time; public int dwExtraInfo; } #endregion #region Api public delegate int HookProc ( int nCode, Int32 wParam, IntPtr lParam); // 安装钩子的函数[ DllImport ( "" , CharSet = CharSet .Auto, CallingConvention = CallingConvention .StdCall)] public static extern int SetWindow

C#键盘钩子实现全局快捷键 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人luyinyzhi
  • 文件大小154 KB
  • 时间2017-02-18