| 1.定義一些必要的API函數、常量和變數 Public   Declare   Function   RegisterHotKey   Lib   "user32"   (ByVal   hWnd   As   Integer,   ByVal   id   As   Integer,   ByVal   fsModifiers   As   Integer,   ByVal   vk   As   Integer)   As   Integer
 Public   Declare   Function   UnregisterHotKey   Lib   "user32"   (ByVal   hWnd   As   Integer,   ByVal   id   As   Integer)   As   Integer
 
 Public   Const   WM_HOTKEY   As   Short   =   &H312S
 Public   Const   MOD_ALT   As   Short   =   &H1S
 Public   Const   MOD_CONTROL   As   Short   =   &H2S
 Public   Const   MOD_SHIFT   As   Short   =   &H4S
 
 Public   preWinProc   As   Integer
 Public   uVirtKey1,   Modifiers,   idHotKey   As   Integer
 
 Public   Structure   taLong
 Dim   ll   As   Integer
 End   Structure
 
 Public   Structure   t2Int
 Dim   lWord   As   Short
 Dim   hword   As   Short
 End   Structure
 
 2.先註冊熱鍵
 Private   Sub   Form1_Load(ByVal   sender   As   Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load
 Dim   ret   As   Integer
 
 idHotKey   =   100   ''in   the   range   &h0000   through   &hBFFF
 Modifiers   =   MOD_ALT   ''輔助鍵為Alt
 uVirtKey1   =   System.Windows.Forms.Keys.D     ''註冊的熱鍵為Alt+D
 '註冊熱鍵
 ret   =   Module1.RegisterHotKey(Me.Handle.ToInt32,   idHotKey,   Modifiers,   uVirtKey1)
 If   ret   =   0   Then
 MsgBox("註冊熱鍵失敗,請使用其它熱鍵!",   MsgBoxStyle.Critical,   "錯誤")
 End   If
 End   Sub
 記得在表單關閉時登出熱鍵哦!!!
 Private   Sub   Form1_Closing(ByVal   sender   As   Object,   ByVal   e   As   System.ComponentModel.CancelEventArgs)   Handles   MyBase.Closing
 Module1.UnregisterHotKey(Me.Handle.ToInt32,   uVirtKey1)
 End   Sub
 3.然後展開表單內碼表最上面那一句“Windows   表單設計器生成的代碼”,找到其中New的那一段,在這一段後面加上這麼一個函數(其實哪裡都行,只是我喜歡放在這裡   ^_^)
 <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,   Name:="FullTrust")>   _
 Protected   Overrides   Sub   WndProc(ByRef   m   As   Message)
 Dim   lp   As   taLong
 Dim   i2   As   t2Int
 Dim   TempData   As   String
 '   Listen   for   operating   system   messages
 Select   Case   (m.Msg)
 '   The   WM_ACTIVATEAPP   message   occurs   when   the   application
 '   becomes   the   active   application   or   becomes   inactive.
 Case   WM_HOTKEY
 MsgBox("HotKey1")
 If   m.WParam.ToInt32   =   idHotKey   Then
 lp.ll   =   m.LParam.ToInt32
 
 i2.lWord   =   lp.ll   And   &HFFFF
 i2.hword   =   (lp.ll   And   &HFFFF0000)   >>   16
 
 MsgBox(i2.hword.ToString   &   ","   &   i2.lWord)
 
 If   (i2.lWord   =   Modifiers)   And   i2.hword   =   uVirtKey1   Then
 If   System.Windows.Forms.Clipboard.GetDataObject.GetDataPresent(System.Windows.Forms.DataFormats.Text)   Then       '這一段的判斷好像不是很準確,我還沒仔細研究,不好意思了哦
 TempData   =   System.Windows.Forms.Clipboard.GetDataObject.GetData(System.Windows.Forms.DataFormats.Text)
 End   If
 
 MsgBox("剪貼板中的資料是文本格式的!"   &   vbCrLf   &   "內容為:   "   &   TempData)
 End   If
 End   If
 End   Select
 MyBase.WndProc(m)
 End   Sub
 
 |