'form1 ,需要一个 Command1 和一个 text1 Private Sub Command1_Click() Dim str5 As String, len5 As Long, i As LongCall EnableHook str5 = "ÕâÊÇÒ»¸ö²âÊÔJournalPlayBackHookµÄ³Ìʽ" len5 = Len(str5) For i = 1 To len5 Text1.Text = Mid(str5, 1, i) Text1.Refresh Sleep (200) Next Call FreeHook End Sub 'module1 : Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long) Const WM_MOUSELAST = &H209 Const WM_MOUSEFIRST = &H200 Public Const WM_KEYLAST = &H108 Public Const WM_KEYFIRST = &H100 Public Const WH_JOURNALRECORD = 0 Public Const WH_JOURNALPLAYBACK = 1Type EVENTMSG message As Long paramL As Long paramH As Long time As Long hwnd As Long End Type 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 hNxtHook As Long ' handle of Hook Procedure Public msg As EVENTMSGSub EnableHook() hNxtHook = SetWindowsHookEx(WH_JOURNALPLAYBACK, AddressOf HookProc, App.hInstance, 0) End Sub Sub FreeHook() Dim ret As Long ret = UnhookWindowsHookEx(hNxtHook) End Sub Function HookProc(ByVal code As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long HookProc = CallNextHookEx(hNxtHook, code, wParam, lParam) End Function
public Declare Function EnableHardwareInput Lib "User" (byval bEnableInput) as longdim l as longl=enablehardwareinput(false) '禁止l=enablehardwareinput(true) '允许如果行,记得给分我了!:)
Private Sub Command1_Click()
Dim str5 As String, len5 As Long, i As LongCall EnableHook
str5 = "ÕâÊÇÒ»¸ö²âÊÔJournalPlayBackHookµÄ³Ìʽ"
len5 = Len(str5)
For i = 1 To len5
Text1.Text = Mid(str5, 1, i)
Text1.Refresh
Sleep (200)
Next
Call FreeHook
End Sub
'module1 :
Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)
Const WM_MOUSELAST = &H209
Const WM_MOUSEFIRST = &H200
Public Const WM_KEYLAST = &H108
Public Const WM_KEYFIRST = &H100
Public Const WH_JOURNALRECORD = 0
Public Const WH_JOURNALPLAYBACK = 1Type EVENTMSG
message As Long
paramL As Long
paramH As Long
time As Long
hwnd As Long
End Type
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 hNxtHook As Long ' handle of Hook Procedure
Public msg As EVENTMSGSub EnableHook()
hNxtHook = SetWindowsHookEx(WH_JOURNALPLAYBACK, AddressOf HookProc, App.hInstance, 0)
End Sub
Sub FreeHook()
Dim ret As Long
ret = UnhookWindowsHookEx(hNxtHook)
End Sub
Function HookProc(ByVal code As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
HookProc = CallNextHookEx(hNxtHook, code, wParam, lParam)
End Function
指教一下,从来没看到过。
一个是getdesktopwindow() enablewindow()
具体代码:
dim a as long
a=getdesktopwindow()
call cnablewindow(a)
这样无论你是键盘还MOUSE,都不能用。
Timer1.Interval = 10000
Timer1.Enabled = True
BlockInput True
End SubPrivate Sub Timer1_Timer()
BlockInput False
Timer1.Enabled = False
End Sub
任何输入都失效,除了一个:CTRL+ALT+DEL
对于这个,你可以参考其它地方诸如游戏程序等
屏蔽系统热键的文章。
注意:必须有个Timer1控件,且设为Enabled = True,
Interval 根据你需要“死机”多长时间来设。运行。