首页 > 解决方案 > 我怎样才能收到我的服务正在被卸载的通知?

问题描述

我想知道是否可以收到我的服务正在卸载的通知?

我可以收到我的服务正在停止的通知。

    protected override void OnStop()
    {
        base.OnStop();
    }

但是我怎么知道它是否正在被卸载?

标签: c#.netservice

解决方案


事实证明,可以使用服务控制 (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;
            }
        }
    }

推荐阅读