回复 1# yjwfdc
是不是发送关机消息啊 然后自身屏蔽关机消息
Option Explicit
Public Const WM_QUERYENDSESSION = &H11
Public Const GWL_WNDPROC = (-4)
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public TheProc As Long
Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_QUERYENDSESSION Then
MsgBox "我不让你关机"
WindowProc = 0
Else
WindowProc = CallWindowProc(TheProc, hwnd, uMsg, wParam, lParam)
End If
End Function
窗体部分
Option Explicit
Private Sub Form_Load()
TheProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call SetWindowLong(hwnd, GWL_WNDPROC, TheProc)
End Sub |