C#全局钩子:打造自己的组合快捷键
2012-08-24 09:15
357 查看
首先关于钩子,相比大家都明白,在程序监听事件时只能监听本程序所引发的事件,而不能监听全局事件,而window提供钩子则为我们提供这解决方案
当初想做这个最初是由于QQ截图(腾讯为数不多良心产品)没有像QQ自带那种ctrl+alt+A能调用出来
就想自己写程序做一个出来,然后,就有了这个东东
此程序通过封装一个类库(调用win32钩子hook函数)来给应用程序使用,此dll结构如下
其中实现了鼠标Hook与键盘Hook,都继承于这个抽象类GlobalHook
另外这个dll是某位大神写的,并不是我写的,只是本人拿来在用而已。
调用代码:
View
Code
当初想做这个最初是由于QQ截图(腾讯为数不多良心产品)没有像QQ自带那种ctrl+alt+A能调用出来
就想自己写程序做一个出来,然后,就有了这个东东
此程序通过封装一个类库(调用win32钩子hook函数)来给应用程序使用,此dll结构如下
其中实现了鼠标Hook与键盘Hook,都继承于这个抽象类GlobalHook
另外这个dll是某位大神写的,并不是我写的,只是本人拿来在用而已。
调用代码:
View
Code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using MouseKeyboardLibrary; using System.Runtime.InteropServices; using System.Diagnostics; namespace key { public partial class K : Form { public K() { InitializeComponent(); } MouseHook mouseHook = new MouseHook(); KeyboardHook keyboardHook = new KeyboardHook(); private void 完美N_Load(object sender, EventArgs e) { keyboardHook.KeyDown += new KeyEventHandler(keyboardHook_KeyDown); //mouseHook.MouseDown += new MouseEventHandler(mouseHook_MouseDown); //mouseHook.Start(); keyboardHook.Start(); this.Hide();//隐藏窗体 this.ShowInTaskbar = false; } void keyboardHook_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.A && e.Alt) { Process.Start(@"D:\JERRY\截图2012.exe"); } else if (e.Alt) { if (e.KeyCode == Keys.Q) { ProcessStartInfo psi = new ProcessStartInfo("mstsc"); Process.Start(psi); } if (e.KeyCode == Keys.Z) Process.Start(@"\\tstdev06"); if (e.KeyCode == Keys.A) Process.Start(@"D:\HKGTFS01"); if (e.KeyCode == Keys.E) Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe"); } } } }
相关文章推荐
- C#全局钩子:打造自己的组合快捷键
- 黄聪:VS2010开发如何在c#中使用Ctrl、Alt、Tab等全局组合快捷键
- 封装:钩子注册全局组合快捷键
- NetAnalyzer笔记 之 十 贫民的选择 —— 通过邮件方式打造自己的bug反馈模块(C#)
- C#注册和注销全局快捷键
- 用C#打造自己的实体转换器
- c# 钩子屏蔽键盘快捷键
- C#打造自己的企业内部沟通平台(下)
- Blog ,News, Rss阅读器的缺点及想法 -- 打造自己的新闻阅读器 JAVA ? C# ? 何去何从 - [s00n原作]
- C#全局键盘钩子
- C# 注册系统全局快捷键
- C#数据结构和算法学习系列一----打造自己的Collection类
- C# 创建Button的快捷键组合
- C#实现组合快捷键设置
- 打造自己的 C# WinForm 应用程序的 SQL Server 连接配置界面
- 用C#打造自己的实体转换器
- dotNet C# 下的全局钩子问题
- C#全局鼠标钩子
- C#实现全局快捷键(系统热键)响应(转)
- C#使用全局钩子(hook),SetWindowsHookEx返回0、不回调的解决