天天看点

WinForm 如何注册热键?

 Q:WinForm 如何注册热键?

A:

WinForm 如何注册热键?

using    System; 

WinForm 如何注册热键?

using    System.Collections.Generic; 

WinForm 如何注册热键?

using    System.ComponentModel; 

WinForm 如何注册热键?

using    System.Data; 

WinForm 如何注册热键?

using    System.Drawing; 

WinForm 如何注册热键?

using    System.Text; 

WinForm 如何注册热键?

using    System.Windows.Forms; 

WinForm 如何注册热键?

using    System.DirectoryServices; 

WinForm 如何注册热键?

using    System.Runtime.InteropServices; 

WinForm 如何注册热键?

namespace    test 

WinForm 如何注册热键?
WinForm 如何注册热键?

... { 

WinForm 如何注册热键?

         public     partial     class    Form1   :   Form 

WinForm 如何注册热键?
WinForm 如何注册热键?

         ... { 

WinForm 如何注册热键?

                 class    HotKey 

WinForm 如何注册热键?
WinForm 如何注册热键?

                 ... { 

WinForm 如何注册热键?

                         // 如果函数执行成功,返回值不为0。 

WinForm 如何注册热键?

                         // 如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。 

WinForm 如何注册热键?

                        [DllImport(  " user32.dll  " ,   SetLastError    =     true )] 

WinForm 如何注册热键?

                         public     static     extern     bool    RegisterHotKey( 

WinForm 如何注册热键?

                                IntPtr   hWnd,                                  // 要定义热键的窗口的句柄 

WinForm 如何注册热键?

                                 int    id,                                            // 定义热键ID(不能与其它ID重复)                       

WinForm 如何注册热键?

                                KeyModifiers   fsModifiers,        // 标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效 

WinForm 如何注册热键?

                                Keys   vk                                            // 定义热键的内容 

WinForm 如何注册热键?

                                ); 

WinForm 如何注册热键?
WinForm 如何注册热键?

                        [DllImport(  " user32.dll  " ,   SetLastError    =     true )] 

WinForm 如何注册热键?

                         public     static     extern     bool    UnregisterHotKey( 

WinForm 如何注册热键?

                                IntPtr   hWnd,                                  // 要取消热键的窗口的句柄 

WinForm 如何注册热键?

                                 int    id                                              // 要取消热键的ID 

WinForm 如何注册热键?

                                ); 

WinForm 如何注册热键?
WinForm 如何注册热键?

                         // 定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值) 

WinForm 如何注册热键?

                        [Flags()] 

WinForm 如何注册热键?

                         public     enum    KeyModifiers 

WinForm 如何注册热键?
WinForm 如何注册热键?

                         ... { 

WinForm 如何注册热键?

                                None    =     0 , 

WinForm 如何注册热键?

                                Alt    =     1 , 

WinForm 如何注册热键?

                                Ctrl    =     2 , 

WinForm 如何注册热键?

                                Shift    =     4 , 

WinForm 如何注册热键?

                                WindowsKey    =     8  

WinForm 如何注册热键?

                        }  

WinForm 如何注册热键?

                }  

WinForm 如何注册热键?
WinForm 如何注册热键?
WinForm 如何注册热键?

                 public    Form1() 

WinForm 如何注册热键?
WinForm 如何注册热键?

                 ... { 

WinForm 如何注册热键?

                        InitializeComponent(); 

WinForm 如何注册热键?

                        HotKey.RegisterHotKey( this .Handle,    100 ,    0 ,   Keys.F1); 

WinForm 如何注册热键?
WinForm 如何注册热键?

                }  

WinForm 如何注册热键?
WinForm 如何注册热键?

                 protected     override     void    WndProc( ref    Message   m) 

WinForm 如何注册热键?
WinForm 如何注册热键?

                 ... { 

WinForm 如何注册热键?

                         const     int    WM_HOTKEY    =     0x0312 ; 

WinForm 如何注册热键?

                         // 按快捷键   

WinForm 如何注册热键?

                         switch    (m.Msg) 

WinForm 如何注册热键?
WinForm 如何注册热键?

                         ... { 

WinForm 如何注册热键?

                                 case    WM_HOTKEY: 

WinForm 如何注册热键?

                                         switch    (m.WParam.ToInt32()) 

WinForm 如何注册热键?
WinForm 如何注册热键?

                                         ... { 

WinForm 如何注册热键?

                                                 case     100 : 

WinForm 如何注册热键?

                                                        MessageBox.Show(  " Press   F1  " ); 

WinForm 如何注册热键?

                                                         break ; 

WinForm 如何注册热键?

                                        }  

WinForm 如何注册热键?

                                         break ; 

WinForm 如何注册热键?

                        }  

WinForm 如何注册热键?

                         base .WndProc( ref    m); 

WinForm 如何注册热键?

                }  

WinForm 如何注册热键?
WinForm 如何注册热键?
WinForm 如何注册热键?
WinForm 如何注册热键?

        }  

WinForm 如何注册热键?

}

继续阅读