我开发了窗口服务。 我想知道如果服务被杀死我怎么能得到通知。 目前我正在收到通知,如果服务停止。
----service startup code--- inline void CServiceModule::Init(_ATL_OBJMAP_ENTRY* p,HINSTANCE h,UINT nServiceNameID,const GUID* plibid) { CComModule::Init(p,h,plibid); m_bService = TRUE; m_hInstance = h; if(m_szServiceName.size()==0) { string strServiceName = GetServiceName(); m_szServiceName = strServiceName; } // set up the initial service status m_hServiceStatus = NULL; m_status.dwServiceType = SERVICE_WIN32_OWN_PROCESS; m_status.dwCurrentState = SERVICE_STOPPED; m_status.dwControlsAccepted = SERVICE_ACCEPT_PRESHUTDOWN; m_status.dwWin32ExitCode = 0; m_status.dwServiceSpecificExitCode = 0; m_status.dwCheckPoint = 0; m_status.dwWaitHint = 0; } ---Handler---- inline void CServiceModule::Handler(DWORD dwOpcode) { switch (dwOpcode) { case SERVICE_CONTROL_SHUTDOWN: case SERVICE_CONTROL_STOP: SetServiceStatus(SERVICE_STOP_PENDING); PostThreadMessage(dwThreadID,WM_QUIT,0); break; case SERVICE_CONTROL_PAUSE: break; case SERVICE_CONTROL_CONTINUE: break; case SERVICE_CONTROL_INTERROGATE: break; /* case SERVICE_CONTROL_SHUTDOWN: break;*/ default: LogEvent(_T("Bad service request")); } }
服务停止时,我收到SERVICE_CONTROL_STOP通知。 请build议如果服务被杀死,我应该使用什么处理程序。
关于WCF服务总线
W8服务的连接待机通知
更改线程会话ID
启动AX 2012 R3服务时出错
如果它被杀死了 它结束了。 立即。 你没有得到任何信号。
但是,如果您在任务管理器中选择了最新的Windows版本,则永远不会杀死一个进程。 他们会首先发送一个关闭的信号(就好像你已经按下了Alt-F4)到应用程序,给它一个优雅的关闭的机会。 只有在特定时间段内不关闭应用程序才会被终止。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。