C#调用非托管dll 注册热键(摘录)
2010-06-04 17:23
253 查看
代码
public class HotKey { //如果函数执行成功,返回值不为0。 //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。 [DllImport("user32.dll", SetLastError = true)] public static extern bool RegisterHotKey( IntPtr hWnd, //要定义热键的窗口的句柄 int id, //定义热键ID(不能与其它ID重复) KeyModifiers fsModifiers, //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效 Keys vk //定义热键的内容 ); [DllImport("user32.dll", SetLastError = true)] public static extern bool UnregisterHotKey( IntPtr hWnd, //要取消热键的窗口的句柄 int id //要取消热键的ID ); //定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值) [Flags()] public enum KeyModifiers { None = 0, Alt = 1, Ctrl = 2, Shift = 4, WindowsKey = 8 } } private void Form1_Load(object sender, EventArgs e) { //注册热键Shift+S,Id号为100。HotKey.KeyModifiers.Shift也可以直接使用数字4来表示。 HotKey.RegisterHotKey(Handle, 200, HotKey.KeyModifiers.Shift, Keys.S); //注册热键Ctrl+B,Id号为101。HotKey.KeyModifiers.Ctrl也可以直接使用数字2来表示。 HotKey.RegisterHotKey(Handle, 201, HotKey.KeyModifiers.Ctrl, Keys.B); //注册热键Ctrl+Alt+D,Id号为102。HotKey.KeyModifiers.Alt也可以直接使用数字1来表示。 HotKey.RegisterHotKey(Handle, 202, HotKey.KeyModifiers.Alt | HotKey.KeyModifiers.Ctrl, Keys.D); //注册热键F5,Id号为103。 HotKey.RegisterHotKey(Handle, 203, HotKey.KeyModifiers.None, Keys.F5); } protected override void WndProc(ref Message m) { const int WM_HOTKEY = 0x0312; //按快捷键 switch (m.Msg) { case WM_HOTKEY: switch (m.WParam.ToInt32()) { case 200: //按下的是Shift+S this.Text = "按下的是Shift+S"; MessageBox.Show("按下的是Shift+S"); break; case 201: //按下的是Ctrl+B //此处填写快捷键响应代码 this.Text = "按下的是Ctrl+B"; MessageBox.Show("按下的是Ctrl+B"); break; case 202: //按下的是Alt+D //此处填写快捷键响应代码 this.Text = "按下的是Ctrl+Alt+D"; break; case 203: this.Text = "F5"; break; } break; } base.WndProc(ref m); }
相关文章推荐
- C#中调用API函数RegisterHotKey注册多个系统热键
- C#中调用API函数RegisterHotKey注册多个系统热键
- C#中调用API函数RegisterHotKey注册多个系统热键
- C#中调用API函数RegisterHotKey注册多个系统热键
- C#中调用API函数RegisterHotKey注册多个系统热键
- C#中调用API函数RegisterHotKey注册多个系统热键
- C#注册热键【快捷键】代码
- C#实现注册全局热键(register hot key)
- 在C#调用C++的DLL简析(一)——生成非托管dll
- C#软件开发实例.私人订制自己的屏幕截图工具(二)创建项目、注册热键、显示截图主窗口
- C# 如何实现热键注册 RegisterHotKey
- C# 注册窗口热键(Winform&WPF)和系统热键
- C#注册全局热键
- [C#/C++]C#调用非托管DLL的APIs
- C#调用系统注册程序打开pdf文件
- C#网站调用C++非托管dll须知
- C#调用非托管DLL的APIs
- C# 注册系统热键
- C#调用C++ DLL简析(一)——生成非托管dll