我的程序需要拦截windows的关机事件,在即将关机前将一个小文件用ftp方式上传到某个服务器,上传完成后不能影响windows的关机,系统为windows xp,下面是我的关键部分的代码:Public Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_QUERYENDSESSION Then
 Debug.Print "QryEnd", wParam, lParam
Else
 If Msg = WM_ENDSESSION Then
  If wParam 0 Then 
    该处是我上传文件的代码
  End If
 End If
End If
wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
End Function经测试,上传文件部分没有问题,也可以成功拦截到WM_ENDSESSION消息,但是编译运行后,关机后服务器上并没有我上传的文件。
我自己分析认为:可能是当程序拦截到WM_ENDSESSION这个消息时,系统的很多服务已经关闭,包括ftp,所以才没有上传成功。
1、我的分析是正确的吗?
2、如果我的分析是正确的,那么把上传文件放在拦截到WM_QUERYENDSESSION消息后行不行呢?
3、如果也不行,该如何实现我的功能呢?