如何创建显示窗口的热键?

问题描述:

我正在使用c的窗口应用程序# 。当我按键时,我想显示我的应用程序窗口,但我不知道如何创建热键。告诉我?如何创建显示窗口的热键?

你可以创建一个应用程序,启动并安装所谓的键盘钩子。一个很好的例子是在这里:

http://www.codeproject.com/KB/cs/globalhook.aspx

后,该应用程序可以最小化到任务栏或系统托盘

。键盘钩子的事件处理程序然后重新激活应用程序。

不要使用挂钩这一点,更好地利用RegisterHotKeyUnregisterHotKey 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 
     } 
    } 
}