如何在VB里实现WIN2000屏保里按下CTRL+ALT+DEL实现锁定的功能

解决方案 »

  1.   

    用VB 调用
    DOS命令不就可以了吗
      

  2.   

    给你个锁定计算机的代码,同时把CTRL+ALT+DEL也锁定了.当然锁定前,可以通过热键,开始锁定.注意密码是mouse
    模块:
    Declare Function SystemParametersInfo Lib _
    "user32" Alias "SystemParametersInfoA" (ByVal uAction _
    As Long, ByVal uParam As Long, ByVal lpvParam As Any, _
    ByVal fuWinIni As Long) As Long
    '-------------------------------------------' Used for ExitWindows
    Const EWX_LOGOFF = 0
    Const EWX_SHUTDOWN = 1
    Const EWX_REBOOT = 2
    Const EWX_FORCE = 4
    Declare Function ExitWindowsEx Lib "user32" _
    (ByVal uFlags As Long, ByVal dwReserved _
    As Long) As Long
    ' ---------------------' Used for AlwaysOnTop
    Const FLAGS = 3
    Const HWND_TOPMOST = -1
    Const HWND_NOTOPMOST = -2
    Public SetTop As Boolean
    Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal X%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal f%) As Integer
    '-------------------------------------------Sub ExitWindows(ExitMode As String)
     Select Case ExitMode
     Case Is = "shutdown"
         t& = ExitWindowsEx(EWX_SHUTDOWN, 0)
     Case Is = "reboot"
         t& = ExitWindowsEx(EWX_REBOOT Or EXW_FORCE, 0)
     Case Else
        MsgBox ("Error in ExitWindows call")
     End Select
      
     End Sub
    Sub AlwaysOnTop(FormName As Form, bOnTop As Boolean)
        'Sets a form as always on top
    Dim Success As Integer
    If bOnTop = False Then
        Success% = SetWindowPos(FormName.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
    Else
        Success% = SetWindowPos(FormName.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
    End If
    End Sub
    Sub Center(FormName As Form)
     ' Center Forms...
     'Move (Screen.Width - FormName.Width) \ 2, (Screen.Height - FormName.Height) \ 2
    End Sub
    Sub DisableCtrlAltDelete(bDisabled As Boolean)
        ' Disables Control Alt Delete Breaking as well as Ctrl-Escape
        Dim X As Long
        X = SystemParametersInfo(97, bDisabled, CStr(1), 0)End SubSub OpenApp(File As String)
        'Shells to another application
        X = Shell(File)
    End Sub
    窗体:
    Option Explicit
        Dim ter As BooleanPrivate Sub Command1_Click()
        ter = False
        DisableCtrlAltDelete (False)
        Unload Form1
    End Sub
    Private Sub Form_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then
            Timer1.Enabled = False
            Timer2.Enabled = True
            Text1.Enabled = True
        End If
    End SubPrivate Sub Form_Load()
        Me.WindowState = 2
        Timer1.Interval = 10
        Timer1.Interval = 1000
        Timer1.Enabled = True
        Timer2.Enabled = False
        DisableCtrlAltDelete (True)
        ter = True
        DisableCtrlAltDelete (True)
        ter = True
    End Sub
    Private Sub Form_LostFocus()
        Form1.SetFocus
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        If ter = True Then
            Cancel = 5
        Else
        End If
    End Sub窗体上的控件你在代码上找吧
    基本原理就是窗体最大话之后,屏蔽鼠标键盘输入
      

  3.   

    非常感谢你的帮忙,你的代码我已经测试过了,可是在WIN2000下好像没什么作用
      

  4.   

    在win2000下可以修改注册表,使任务管理器不可用
    '不可用
     RegOpenKey HKCU, KEY_DisableTaskMgr, hk
          RegCreateKey HKCU, KEY_DisableTaskMgr, hk
          val = 1
          RegSetValueEx hk, VAL_DisableTaskMgr, 0, REG_DWORD, val, 4
    '可用
     RegOpenKey HKCU, KEY_DisableTaskMgr, hk
          RegCreateKey HKCU, KEY_DisableTaskMgr, hk
          RegDeleteValue hk, VAL_DisableTaskMgr