怎么样能让自己的程序在关机前最后一个关闭?
vb吧
全部回复
仅看楼主
level 3
ronnie7777 楼主
怎么样能让自己的程序在关机前最后一个关闭?求高手指点!
2009年12月22日 12点12分 1
level 12
模块代码:
###############################################
Option Explicit
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
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
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd _
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_SYSCOMMAND = &H112&
Const SC_MONITORPOWER = &HF170&
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_ENDSESSION = &H16
Public Const WM_QUERYENDSESSION = &H11
Public preWinProc As Long
Public Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_ENDSESSION Or Msg = WM_QUERYENDSESSION Then '判断拦截下来的消息是否是关闭系统的消息
     '这里什么都不做,相当于拦截下关闭消息,不返回任何值,实现一票否决。
Else
     wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)      '将截获的消息返回给系统
End If
End Function
2009年12月23日 05点12分 2
level 5
留名
2009年12月23日 08点12分 3
level 4
路过
2009年12月23日 13点12分 4
level 1
收藏!
2009年12月24日 05点12分 5
level 1
谢谢,先藏着
2010年01月11日 15点01分 6
1