vb高手请看看这个想阻止关闭系统的代码有问题

2025-04-28 16:02:31
推荐回答(1个)
回答1:

出现问题的原因在于MsgBox:
MsgBox使用后,程序会出现停滞状态,也就是说,此时的wndproc无法实时对系统注销信息作出反应。所以不能使用类似语句,而改用其他显示信息的方法。如:Form1.label1="未经许可,不能注销!"

代码个性如下:
If Msg = WM_QUERYENDSESSION Then '如果是注销

'在这里,你可以加一些自定义操作
Form1.capcion= "未经许可,不能注销!"
'End '程序退出,防止用户因为本程序未退出而无法注销。

Else

If Msg = WM_ENDSESSION Then '如果是关机
If wParam = 0 Then '代表将顺利关机或LogOff,这时便得做正常结束程序的操作

'在这里,你可以加一些自定义操作

End '程序退出,防止用户因为本程序未退出而无法关机。

End If
End If
End If