VB与Windows

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:34:36
在VB中,如何迫使Windows无法关机?
最好是详细代码

首先声明API
如果在模块里声明,输入:
Public Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long
如果在窗体里声明,输入:
Private Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long
在窗体上放一个计时器,把 Interval 属性设置一下(偏小一些),双击计时器,在代码窗口输入:
AbortSystemShutdown vbNullString
即可。
当然,你要在 Form 的 QueryUnload 事件中拒绝窗口关闭,就象这样:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 2 Then '当 UnloadMode = 2 时,说明 Windows 正在被关闭,这也就是为什么不用 Unload 事件的原因
Cancel = 50 '拒绝关闭窗口
End If
End Sub
其实,还有一个办法,就是不用计时器,直接在 Form 的 QueryUnload 事件中拒绝窗口关闭,并中断Windows关机:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 2 Then
Cancel = 50 '拒绝关闭窗口
AbortSystemShutdown vbNullString