如何创建显示窗口的热键?
答
你可以创建一个应用程序,启动并安装所谓的键盘钩子。一个很好的例子是在这里:
http://www.codeproject.com/KB/cs/globalhook.aspx
后,该应用程序可以最小化到任务栏或系统托盘。键盘钩子的事件处理程序然后重新激活应用程序。
答
不要使用挂钩这一点,更好地利用RegisterHotKey和UnregisterHotKey Win32函数:
public class YourForm : Form
{
private const int WM_HOTKEY = 0x0312;
[Flags]
private enum MOD : uint
{
MOD_ALT = 0x0001,
MOD_CONTROL = 0x0002,
MOD_SHIFT = 0x0004,
MOD_WIN = 0x0008
}
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, MOD fsModifiers, uint vk);
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
protected override WndProc(ref Message m)
{
if (m.Msg == WM_HOTKEY)
{
// Your code here
}
}
}