出现问题的原因在于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