屏蔽掉ctrl+alt+del的办法:
Private Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As LongPrivate Const SPI_SCREENSAVERRUNNING = 97&Public Sub AllowKeys(bParam As Boolean)
Dim lRetVal As Long, bOld As Boolean
SystemParametersInfo SPI_SCREENSAVERRUNNING, bParam, bOld, 0&
End SubAllowKeys True '锁定
AllowKeys False '解锁
Private Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As LongPrivate Const SPI_SCREENSAVERRUNNING = 97&Public Sub AllowKeys(bParam As Boolean)
Dim lRetVal As Long, bOld As Boolean
SystemParametersInfo SPI_SCREENSAVERRUNNING, bParam, bOld, 0&
End SubAllowKeys True '锁定
AllowKeys False '解锁
Option ExplicitDeclare 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 LongPublic hnexthookproc As Long
Public Const HC_ACTION = 0
Public Const WH_KEYBOARD = 2Public Sub UnHookKBD()
If hnexthookproc <> 0 Then
UnhookWindowsHookEx hnexthookproc
hnexthookproc = 0
End If
End Sub
Public Function EnableKBDHook()
If hnexthookproc <> 0 Then
Exit Function
End If
hnexthookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf _
MyKBHFunc, App.hInstance, 0)
If hnexthookproc <> 0 Then
EnableKBDHook = hnexthookproc
End If
End Function
Public Function MyKBHFunc(ByVal iCode As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
'这叁个参数是固定的,不能动,而MyKBHFunc这个名称只要和
'SetWindowsHookex()中 AddressOf後的名称一样便可,不一定叫什麽
'wParam 是传入按了哪个key的virtual-key code'如果您将以下的两行un则所有键盘的输入皆没有作用
'MyKBHFunc = 1 '吃掉讯息
'Exit FunctionMyKBHFunc = 0 '讯息要处理
If iCode < 0 Then
MyKBHFunc = CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
Exit Function
End If
If wParam = vbKeySnapshot Then '侦测 有没有按到PrintScreen键
MyKBHFunc = 1 '在这个Hook便吃掉这个讯息
Debug.Print "haha"
Else
Call CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
End If
End Function'以下在Form
Private Sub Form_Load()
Call EnableKBDHook
End SubPrivate Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End Sub
很好!!!中科多媒体电子出版社
郝春强 编著
里面有(156页),可以屏蔽掉Ctrl+Alt+Del.
另外商都也有一个叫“锁鼠标”的软件,可以屏蔽掉别的键。
我也编了一个,不过我还没有锁定sleep键(Dangerous!!!),另外,你可以在玩cs的时候用我的软件把windows键屏蔽掉,可能是一个bug 吧.一退出就没有声音.