转载自:http://blog.csdn.net/zlz_212/archive/2006/06/15/798603.aspx
要设置快捷键必须使用user32.dll下面的两个方法。
BOOL RegisterHotKey(
HWND hWnd,
int id,
UINT fsModifiers,
UINT vk
);
和
BOOL UnregisterHotKey(
HWND hWnd,
int id
);
转换成C#代码,那么首先就要引用命名空间System.Runtime.InteropServices;来加载非托管类user32.dll。于是有了:
[DllImport("user32.dll", SetLastError=true)]
public static extern bool RegisterHotKey(
IntPtr hWnd, // handle to window
int id, // hot key identifier
KeyModifiers fsModifiers, // key-modifier options
Keys vk // virtual-key code
);
[DllImport("user32.dll", SetLastError=true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd, // handle to window
int id // hot key identifier
);
[Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Control = 2,
Shift = 4,
Windows = 8
}
这是注册和卸载全局快捷键的方法,那么我们只需要在Form_Load的时候加上注册快捷键的语句,在FormClosing的时候卸载全局快捷键。同时,为了保证剪贴板的内容不受到其他程序调用剪贴板的干扰,在Form_Load的时候,我先将剪贴板里面的内容清空。
于是有了:
private void Form1_Load(object sender, System.EventArgs e)
{
label2.AutoSize = true;
Clipboard.Clear();//先清空剪贴板防止剪贴板里面先复制了其他内容
RegisterHotKey(Handle, 100, 0, Keys.F10);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
UnregisterHotKey(Handle, 100);//卸载快捷键
}
那么我们在别的窗口,怎么让按了快捷键以后调用我的主过程ProcessHotkey()呢?
那么我们就必须重写WndProc()方法,通过监视系统消息,来调用过程:
protected override void WndProc(ref Message m)//监视Windows消息
{
const int WM_HOTKEY = 0x0312;//按快捷键
switch (m.Msg)
{
case WM_HOTKEY:
ProcessHotkey();//调用主处理程序
break;
}
base.WndProc(ref m);
}
分享到:
相关推荐
C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键 2005的,也有通用的
winForm设置全局快捷键方式,提出KeyBoardHook管理。值得留意的是,这里注册的快捷键是全局的。在其它窗口点击快捷键,同样会触发事件。
代码主要实现类似有道词典的软件设置中的自定义快捷键功能。 比如:当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。
编程中Visual C#常用的快捷键编程中Visual C#常用的快捷键编程中Visual C#常用的快捷键编程中Visual C#常用的快捷键编程中Visual C#常用的快捷键
C# 设置应用程序的快捷键C# 设置应用程序的快捷键C# 设置应用程序的快捷键C# 设置应用程序的快捷键C# 设置应用程序的快捷键
本程序在VS2005测试通过,代码里有详细注释!!!
C#设置快捷键及文件占用进程的方案
C#中的快捷键,方便你编写。里面有很多的关于C#的快捷键,你懂得!
c#的快捷键大全c#的快捷键大全c#的快捷键大全c#的快捷键大全
Visual C# 2005 默认快捷键 所有的资料来自'MSDN Visual C# 开发中心', 绝对是最全的!
C# VS2005快捷键大全 ,C# VS2005快捷键大全 C# VS2005快捷键大全 C# VS2005快捷键大全
C#.NETvs2005中快捷键大全 C#.NETvs2005中快捷键大全 C#.NETvs2005中快捷键大全 C#.NETvs2005中快捷键大全 C#.NETvs2005中快捷键大全 C#.NETvs2005中快捷键大全 C#.NETvs2005中快捷键大全
C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键C#快捷键
VS2010中C#的快捷键.txt
C#winform做快捷键示例 C#winform快捷键示例 ,可把你的winform程序加入快捷键功能。
c#.net快捷键大全 对于c#编程过程中,提高速度有一定的帮助. 相对比较全面
可用于自定义C#窗体应用程序中的快捷键,里面包含了详细的代码。
里面包括了一些C#中常用到的快捷键,加快打代码速度!
c#快捷键 word 文档,其实也没有什么,就是平时用的一些,大家看看能用就用吧