天天看點

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 如何注冊熱鍵?

}

繼續閱讀