日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

新建立一個(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 

當(dāng)前文章:全面講解實(shí)現(xiàn)VB.NET全局熱鍵
網(wǎng)址分享:http://m.5511xx.com/article/dpeoidc.html