如果是我,就看看IMessageFilter接口,注册全局消息,过滤WM_KEYDOWN消息。

解决方案 »

  1.   

     [DllImport("user32")]
            public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
            [DllImport("user32")]
            public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
            protected override void WndProc(ref Message m)
            {
                switch (m.Msg)
                {
                    case 0x0312:
                        break;
                }
                base.WndProc(ref m);
            }
      

  2.   

    没注意看啊。原来不是自己程序啊。对别的程序要注册,莫非要
    OpenProcess
    SetWindowLong->自己的消息处理方法->过滤键盘消息?
    这样可行么?
      

  3.   


    case 0x0312: //WM_HOTKEY
      break;
    可是如果注册全局的,即使这里判断,按键也已经被屏蔽了.
    这个过程不熟,贴个例子看看吧.
      

  4.   

    快捷键就是 
    某控件的Text 设置为 "(&A)全选"
    该控件的快捷键就是 Alt + A另一种是热键 如Ctrl + A
      

  5.   

    SetWindowsHookEx在自己程序里拦截WH_KEYBOARD消息然后个根据按键判断  如果想打开计算器就FindWindows然后ShowWindow