找一个完整的可以编译的VB源代码。
在Form1中放置一个Timer1控件。
表单代码:
私人的
声明
功能
塞特库索普斯
解放运动
"用户32 "
(ByVal
x
如同
长,
ByVal
y
如同
龙)
如同
长的
私人的
潜水艇
Form_Load()
我。看得见的
=
错误的
App。任务可见
=
错误的
定时器1。间隔
=
10000
添加挂钩
结束
潜水艇
私人的
潜水艇
表单_卸载(取消
如同
整数)
德尔胡克
结束
潜水艇
私人的
潜水艇
定时器1 _定时器()
塞特库索普斯
50,
50
结束
潜水艇
模块代码
公共
声明
功能
SetWindowsHookEx
解放运动
"用户32 "
别名
" SetWindowsHookExA "
(ByVal
idHook
如同
长,
ByVal
lpfn
如同
长,
ByVal
hmod
如同
长,
ByVal
dwThreadId
如同
龙)
如同
长的
公共
声明
功能
脱钩WindowsHookEx
解放运动
"用户32 "
(ByVal
hHook
如同
龙)
如同
长的
公共
声明
功能
GetKeyState
解放运动
"用户32 "
(ByVal
nVirtKey
如同
龙)
如同
整数
公共
声明
功能
CallNextHookEx
解放运动
"用户32 "
(ByVal
hHook
如同
长,
ByVal
ncode
如同
长,
ByVal
wParam
如同
长,
lParam
如同
任何)
如同
长的
公共
声明
潜水艇
复制记忆
解放运动
"内核32 "
别名
" RtlMoveMemory "
(lpv测试
如同
任何,
ByVal
lpvSource
如同
长,
ByVal
cbCopy
如同
龙)
公共
类型
键盘消息
vKey
如同
长的
虚拟代码
(还有
& ampHFF)
斯基
如同
长的
扫描代码
旗
如同
长的
按键:128
电梯:0
时间
如同
长的
窗口运行时间
结束
类型
公共
常数
WH _键盘_LL
=
13
公共
常数
Alt_Down
=
& ampH20
-
消息
公共
常数
HC_ACTION
=
公共
常数
HC_SYSMODALOFF
=
五
公共
常数
HC_SYSMODALON
=
四
键盘消息
公共
常数
WM_KEYDOWN
=
& ampH100
公共
常数
WM_KEYUP
=
& ampH101
公共
常数
WM_SYSKEYDOWN
=
& ampH104
公共
常数
WM_SYSKEYUP
=
& ampH105
公共
keyMsg
如同
键盘消息
公共
lHook(1)
如同
长的
键盘挂钩
私人的
功能
CallKeyHookProc(ByVal
密码
如同
长,
ByVal
wParam
如同
长,
ByVal
lParam
如同
龙)
如同
长的
暗淡的
lKey
如同
长的
暗淡的
strKeyName
如同
线
*
255
暗淡的
字符长度(stringlength)
如同
长的
如果
密码
=
HC_ACTION
然后
复制记忆
keyMsg,
lParam,
LenB(密钥消息)
挑选
情况
wParam
情况
WM_SYSKEYDOWN,
WM_KEYDOWN,
WM_SYSKEYUP,
WM_KEYUP:
如果
keyMsg.sKey
=
32
然后
CallKeyHookProc
=
1
屏蔽d键
结束
挑选
结束
如果
如果
密码
& lt& gt
然后
CallKeyHookProc
=
CallNextHookEx(0,
代码,
wParam,
lParam)
结束
如果
结束
功能
安装挂钩
公共
潜水艇
AddHook()
键盘挂钩
lHook(0)
=
SetWindowsHookEx(WH _键盘_LL
地址
CallKeyHookProc,
App.hInstance,
0)
结束
潜水艇
卸下吊钩
公共
潜水艇
德尔胡克()
脱钩WindowsHookEx
lHook(0)
结束
潜水艇