VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
当前位置:
主页 > 编程开发 > vb >
  • vb教程之如何拦截键盘输入

  • 2017-09-21 16:32 来源:未知
 这是使用Keyboard Hook 的范例,它的解释请查VB5 Call WinAPI技巧或Hook的简介 
'以下在.Bas 
Option Explicit 

Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long 
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long 
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long 

Public hnexthookproc As Long 
Public Const HC_ACTION = 0 
Public Const WH_KEYBOARD = 2 

Public Sub UnHookKBD() 
If hnexthookproc <> 0 Then 
UnhookWindowsHookEx hnexthookproc 
hnexthookproc = 0 
End If 
End Sub 
Public Function EnableKBDHook() 
If hnexthookproc <> 0 Then 
Exit Function 
End If 
hnexthookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf _ 
MyKBHFunc, App.hInstance, 0) 
If hnexthookproc <> 0 Then 
EnableKBDHook = hnexthookproc 
End If 
End Function 
Public Function MyKBHFunc(ByVal iCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
'这三个参数是固定的,不能动,而MyKBHFunc这个名称只要和 
'SetWindowsHookex()中 AddressOf後的名称一样便可,不一定叫什麽 
'wParam 是传入按了哪个key的virtual-key code 

'如果您将以下的两行unmark则所有键盘的输入皆没有作用 
'MyKBHFunc = 1 '吃掉信息 
'Exit Function 

MyKBHFunc = 0 '信息要处理 
If iCode < 0 Then 
MyKBHFunc = CallNextHookEx(hnexthookproc, iCode, wParam, lParam) 
Exit Function 
End If 
If wParam = vbKeySnapshot Then '侦测 有没有按到PrintScreen键 
MyKBHFunc = 1 '在这个Hook便吃掉这个信息 
Debug.Print "haha" 
Else 
Call CallNextHookEx(hnexthookproc, iCode, wParam, lParam) 
End If 
End Function 

'以下在Form 
Private Sub Form_Load() 
Call EnableKBDHook 
End Sub 

Private Sub Form_Unload(Cancel As Integer) 
Call UnHookKBD 
End Sub
相关教程
  • 新中国第一张彩色报纸《人民日报》 2018-12-13
  • 新编《思维学》续五;《情绪论》 2018-12-13
  • 明年起全面供应国六标准汽柴油 2018-12-12
  • 有神论跟无神论的差别在哪你都不知道,还要扯啥呢。 2018-12-12
  • 互联网与金融 回归·绿色·共享 2018-12-12
  • 中国保险监督管理委员会原主席项俊波受贿案一审开庭 2018-12-10
  • 紫光阁中共中央国家机关工作委员会 2018-12-10
  • 广州市食药监局:端午粽抽检全部合格 2018-12-10
  • 中国足球与中国股市谁最牛?请投下你神圣一票 2018-12-10
  • “碎尸案别墅”拍出后 拖欠的物业费谁付? 2018-12-09
  • 保温杯,嘴边的健康隐患 2018-12-09
  • 马来西亚总理马哈蒂尔 我要去中国看一看,感受无现金社会 2018-12-08
  • 这泼猴总给人萌萌达的感觉 2018-12-08
  • 我们的国际主义义务就是让那受苦受难的中东人去欧洲过上幸福,美好的生活。到中国来,又不自由,又不民主,茶叶蛋都吃不上,来干嘛泥? 2018-12-07
  • 一江清水何以来?(人民眼·生态补偿) 2018-12-07
  • 842| 798| 983| 918| 456| 335| 770| 155| 191| 102|