自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面講解實(shí)現(xiàn)VB.NET全局熱鍵

開發(fā) 后端
VB.NET是一門又方便、有快捷、又靈活的語言,文章就實(shí)現(xiàn)VB.NET全局熱鍵案例做出詳細(xì)的代碼分析,希望對(duì)大家有幫助。

今天在玩游戲的時(shí)候突然有個(gè)想法,想想可以用VB.NET全局熱鍵可以實(shí)現(xiàn),現(xiàn)在就看看文章吧。想要一個(gè)熱鍵功能~習(xí)慣了使用熱鍵...我想想也是...于是就上網(wǎng)找了找VB全局熱鍵的寫法... 一看才知道VB.NET全局熱鍵都很占資源大都用DO~LOOP來監(jiān)視.不喜歡.于是在查閱一些關(guān)于GetWindowLong與HotKey的資料后半抄半寫的情況下寫了以下程序.全局鍵盤熱鍵。

#T#有統(tǒng)計(jì)表明,很大一部分程序缺陷和內(nèi)存的錯(cuò)誤訪問有關(guān)。正是因?yàn)橹羔樦苯雍蛢?nèi)存打交道,所以指針一直以來被看成一個(gè)危險(xiǎn)的東西。以至于不少語言,如著名的 JAVA,都不提供對(duì)指針操作的支持,所有的內(nèi)存訪問方面的處理都由編譯器來完成。而象C和C++,指針的使用則是基本功,指針給了程序員極大的自由去隨心所欲地處理內(nèi)存訪問,很多非常巧妙的東西都要依靠指針技術(shù)來完成。

新建立一個(gè)FORM~

  1. Private Sub Form_Load()  
  2. Dim ret As Long  
  3. preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)  
  4. ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)  
  5. idHotKey = 1 
  6. Modifiers = MOD_ALT + MOD_CONTROL  
  7. uVirtKey = vbKeyA 
  8. ret = RegisterHotKey(Me.hwnd, idHotKey, Modifiers, uVirtKey)  
  9. End Sub  
  10.  
  11. Private Sub Form_Unload(Cancel As Integer)  
  12. Dim ret As Long  
  13. ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)  
  14. Call UnregisterHotKey(Me.hwnd, uVirtKey)  
  15.  
  16. End Sub  

新建立一個(gè)模塊

  1. Option Explicit  
  2.  
  3. Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long  
  4. Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long  
  5. Declare Function CallWindowProc Lib "User32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long  
  6. Declare Function RegisterHotKey Lib "User32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long  
  7. Declare Function UnregisterHotKey Lib "User32" (ByVal hwnd As Long, ByVal id As Long) As Long  
  8.  
  9. Public Const WM_HOTKEY = &H312  
  10. Public Const MOD_ALT = &H1  
  11. Public Const MOD_CONTROL = &H2  
  12. Public Const MOD_SHIFT = &H4  
  13. Public Const GWL_WNDPROC = (-4)  
  14.  
  15. Public preWinProc As Long  
  16. Public Modifiers As Long, uVirtKey As Long, idHotKey As Long  
  17.  
  18. Private Type taLong  
  19. ll As Long  
  20. End Type  
  21.  
  22. Private Type t2Int  
  23. lWord As Integer  
  24. hWord As Integer  
  25. End Type  
  26.  
  27. Public Function Wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long  
  28. If Msg = WM_HOTKEY Then  
  29. If wParam = idHotKey Then  
  30. Dim lp As taLong, i2 As t2Int  
  31. lp.ll = lParam 
  32. LSet i2 = lp 
  33. If (i2.lWord = Modifiers) And i2.hWord = uVirtKey Then  
  34. msgbox "你按下了熱鍵哦~"  
  35. End If  
  36. End If  
  37. End If  
  38. Wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)  
  39. End Function   
責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-10-15 11:42:05

VB.Net賦值語句

2009-10-29 11:26:28

VB.NET調(diào)用Web

2010-01-13 10:46:42

VB.NET Dock

2010-01-11 16:04:10

VB.NET使用wit

2009-10-20 10:16:24

VB.NET COMB

2009-10-27 12:20:06

VB.NET多線程應(yīng)用

2009-10-28 17:44:31

VB.NET語言

2009-10-28 10:04:53

VB.NET XmlW

2009-10-23 15:35:42

VB.NET實(shí)用教程

2010-01-08 18:37:08

VB.NET顯示圖片

2009-10-23 13:10:14

VB.NET List

2009-10-12 13:54:22

VB.NET Data

2009-11-02 14:48:45

VB.NET HOOK

2009-11-02 15:57:36

VB.NET WEB

2009-11-10 16:46:52

VB.NET指針應(yīng)用

2009-10-14 17:21:47

VB.NET定制Win

2009-10-13 14:42:30

VB.NET靜態(tài)成員

2010-01-18 18:20:49

VB.NET使用API

2009-10-15 10:57:16

VB.NET Text

2009-10-14 15:20:21

VB.NET窗體指針
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)