日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
全面講解實(shí)現(xiàn)VB.NET全局熱鍵

今天在玩游戲的時(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,都不提供對指針操作的支持,所有的內(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. Private Sub Form_Unload(Cancel As Integer)
  11. Dim ret As Long
  12. ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)
  13. Call UnregisterHotKey(Me.hwnd, uVirtKey)
  14. End Sub

新建立一個(gè)模塊

 
 
  1. Option Explicit
  2. Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  3. Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  4. 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
  5. Declare Function RegisterHotKey Lib "User32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
  6. Declare Function UnregisterHotKey Lib "User32" (ByVal hwnd As Long, ByVal id As Long) As Long
  7. Public Const WM_HOTKEY = &H312
  8. Public Const MOD_ALT = &H1
  9. Public Const MOD_CONTROL = &H2
  10. Public Const MOD_SHIFT = &H4
  11. Public Const GWL_WNDPROC = (-4)
  12. Public preWinProc As Long
  13. Public Modifiers As Long, uVirtKey As Long, idHotKey As Long
  14. Private Type taLong
  15. ll As Long
  16. End Type
  17. Private Type t2Int
  18. lWord As Integer
  19. hWord As Integer
  20. End Type
  21. Public Function Wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  22. If Msg = WM_HOTKEY Then
  23. If wParam = idHotKey Then
  24. Dim lp As taLong, i2 As t2Int
  25. lp.ll = lParam
  26. LSet i2 = lp
  27. If (i2.lWord = Modifiers) And i2.hWord = uVirtKey Then
  28. msgbox "你按下了熱鍵哦~"
  29. End If
  30. End If
  31. End If
  32. Wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
  33. End Function 

文章名稱:全面講解實(shí)現(xiàn)VB.NET全局熱鍵
鏈接URL:http://www.dlmjj.cn/article/dpeoidc.html