屏蔽掉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 '解锁

解决方案 »

  1.   

    拦截键盘输入 
     
     
     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
     
      

  2.   

    <<Visual Basic 案例教程>>
    很好!!!中科多媒体电子出版社
    郝春强 编著
      里面有(156页),可以屏蔽掉Ctrl+Alt+Del.
      另外商都也有一个叫“锁鼠标”的软件,可以屏蔽掉别的键。
      我也编了一个,不过我还没有锁定sleep键(Dangerous!!!),另外,你可以在玩cs的时候用我的软件把windows键屏蔽掉,可能是一个bug 吧.一退出就没有声音.