给你个锁定计算机的代码,同时把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窗体上的控件你在代码上找吧 基本原理就是窗体最大话之后,屏蔽鼠标键盘输入
非常感谢你的帮忙,你的代码我已经测试过了,可是在WIN2000下好像没什么作用
在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
DOS命令不就可以了吗
模块:
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窗体上的控件你在代码上找吧
基本原理就是窗体最大话之后,屏蔽鼠标键盘输入
'不可用
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