c# - 我怎样才能收到我的服务正在被卸载的通知?
问题描述
我想知道是否可以收到我的服务正在卸载的通知?
我可以收到我的服务正在停止的通知。
protected override void OnStop()
{
base.OnStop();
}
但是我怎么知道它是否正在被卸载?
解决方案
事实证明,可以使用服务控制 (sc) 命令从安装程序调用自定义参数:
sc control <name_of_service> 129
其中 129 是由您的服务处理的自定义代码:
protected enum customCommands
{
install = 128,
uninstall = 129,
}
protected override void OnCustomCommand(int command)
{
base.OnCustomCommand(command);
if (command >= 128 && command <= 255)
{
customCommands cust = (customCommands)command;
switch (cust)
{
case customCommands.install:
break;
case customCommands.uninstall:
break;
default:
break;
}
}
}
推荐阅读
- cyber-ark - 如何获取 CyberArk 的 API 密钥?
- tensorflow - 使用带有 LSTM 的 PCA 性能下降
- java - 电子邮件发件人小任务仅在 Spring Batch Java 作业失败时执行
- google-apps-script - 如何在 Google Data Studio 中传递特定的 URL 参数?
- php - SonataAdmin 如何在父级的显示视图中显示子级的列表视图
- javascript - Javascript:图层的宽度错误
- javascript - “AuthService”类型上不存在属性“isLoggedIn”
- android - 模块化项目中的多个广播接收器
- python - PYTHON:当应用函数将值分配给另一个变量时,变量“a”会改变值,例如 b = func(a)
- python - SSIS使用执行流程任务从python脚本生成输出变量