.net窗体程序,怎么捕捉Windows登出、关机、任务管理器结束进程操作所导致本应用程序的中止事件?到底是哪个事件呢? Application_Exit事件好像没用的。
谢谢!

解决方案 »

  1.   

    捕获异常,还有就是windows的事件查看器
      

  2.   

    FormClosed
      

  3.   

    FormClosed
      

  4.   

    关机和任务管理器结束可以通过在FormClosing的时候检查CloseReason
    登出的话,winforms没有封装,你可以自己重载顶层窗口的WndProc抓WM_QUERYENDSESSION检查lparam是不是ENDSESSION_LOGOFF(0x80000000)。注意检查完了要调用基类的wndproc不然FormClosing不会被触发。
      

  5.   

    FormClosing的示例MSDN上就有
    抓抓WM_QUERYENDSESSION的代码可以在
    https://stackoverflow.com/questions/24100393/c-sharp-windows-program-exit-request-detect-application-exit-no-forms
    看到