'在Form1中放置壹個Timer1控件
'窗體代碼:
Private
Declare
Function
SetCursorPos
Lib
"user32"
(ByVal
x
As
Long,
ByVal
y
As
Long)
As
Long
Private
Sub
Form_Load()
Me.Visible
=
False
App.TaskVisible
=
False
Timer1.Interval
=
10000
AddHook
End
Sub
Private
Sub
Form_Unload(Cancel
As
Integer)
DelHook
End
Sub
Private
Sub
Timer1_Timer()
SetCursorPos
50,
50
End
Sub
'模塊代碼
Public
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
Public
Declare
Function
UnhookWindowsHookEx
Lib
"user32"
(ByVal
hHook
As
Long)
As
Long
Public
Declare
Function
GetKeyState
Lib
"user32"
(ByVal
nVirtKey
As
Long)
As
Integer
Public
Declare
Function
CallNextHookEx
Lib
"user32"
(ByVal
hHook
As
Long,
ByVal
ncode
As
Long,
ByVal
wParam
As
Long,
lParam
As
Any)
As
Long
Public
Declare
Sub
CopyMemory
Lib
"kernel32"
Alias
"RtlMoveMemory"
(lpvDest
As
Any,
ByVal
lpvSource
As
Long,
ByVal
cbCopy
As
Long)
Public
Type
KEYMSGS
vKey
As
Long
'虛擬碼
(and
&HFF)
sKey
As
Long
'掃描碼
flag
As
Long
'鍵按下:128
擡起:0
time
As
Long
'Window運行時間
End
Type
Public
Const
WH_KEYBOARD_LL
=
13
Public
Const
Alt_Down
=
&H20
'-----------------------------------------
'消息
Public
Const
HC_ACTION
=
0
Public
Const
HC_SYSMODALOFF
=
5
Public
Const
HC_SYSMODALON
=
4
'鍵盤消息
Public
Const
WM_KEYDOWN
=
&H100
Public
Const
WM_KEYUP
=
&H101
Public
Const
WM_SYSKEYDOWN
=
&H104
Public
Const
WM_SYSKEYUP
=
&H105
Public
keyMsg
As
KEYMSGS
Public
lHook(1)
As
Long
'鍵盤鉤子
Private
Function
CallKeyHookProc(ByVal
Code
As
Long,
ByVal
wParam
As
Long,
ByVal
lParam
As
Long)
As
Long
Dim
lKey
As
Long
Dim
strKeyName
As
String
*
255
Dim
strLen
As
Long
If
Code
=
HC_ACTION
Then
CopyMemory
keyMsg,
lParam,
LenB(keyMsg)
Select
Case
wParam
Case
WM_SYSKEYDOWN,
WM_KEYDOWN,
WM_SYSKEYUP,
WM_KEYUP:
If
keyMsg.sKey
=
32
Then
CallKeyHookProc
=
1
'屏蔽D按鍵
End
Select
End
If
If
Code
<>
0
Then
CallKeyHookProc
=
CallNextHookEx(0,
Code,
wParam,
lParam)
End
If
End
Function
'安裝鉤子
Public
Sub
AddHook()
'鍵盤鉤子
lHook(0)
=
SetWindowsHookEx(WH_KEYBOARD_LL,
AddressOf
CallKeyHookProc,
App.hInstance,
0)
End
Sub
'卸鉤子
Public
Sub
DelHook()
UnhookWindowsHookEx
lHook(0)
End
Sub