【发布时间】:2012-07-22 15:00:02
【问题描述】:
如何在 Windows 服务(使用 ATL) 中编写 失败操作,所以在我通过调用 myservice.exe /service 注册服务后,失败操作已设置?
【问题讨论】:
如何在 Windows 服务(使用 ATL) 中编写 失败操作,所以在我通过调用 myservice.exe /service 注册服务后,失败操作已设置?
【问题讨论】:
在继承自 CAtlServiceModuleT 的模块类中,您可以覆盖 Install 方法,这是将代码设置失败操作的好地方:
BOOL Install() throw()
{
if(!__super::Install())
return FALSE;
// TODO: Setup Failure Actions
return TRUE;
}
设置操作将涉及与 SCM 的交互,您可以查看基本方法实现的提示,了解如何操作。如果您不想打开 SCM 句柄两次,您可能还希望完全覆盖它而不转到 __super。
【讨论】:
ChangeServiceConfig2() 函数来配置所需的失败操作。