我做了什么
我正在尝试ServiceBase.OnCustomCommand(int command)
在一个名为的自定义 Windows 服务中实现,并使用此答案MyTestService
中的自定义命令代码:
public enum MyCustomCommands { ExecuteScript = 128 };
我注意到在128
.
我试图像这样实现自定义命令代码:
public enum MyCustomCommandCodes
{
Test1 = 1,
Test2 = 2,
}
protected override void OnCustomCommand(int command)
{
switch (command)
{
case (int)MyCustomCommandCodes.Test1:
eventLog1.WriteEntry("Test1");
break;
case (int)MyCustomCommandCodes.Test2:
eventLog1.WriteEntry("Test2");
break;
default:
eventLog1.WriteEntry("default");
break;
}
}
我正在OnCustomCommand
使用 Window 的命令行实用程序Service Control (SC)调用。
当我进入时sc control MyTestService 1
,我发现它实际上没有调用 case Test1
,而是停止了服务。
在我看来,这解释了为什么人们从 开始命令值128
,这是为了防止与已经使用的代码重叠。
我希望能够查看 Windows 服务已在使用哪些控制代码。
两部分问题:
- 有没有办法查询所有正在使用的代码列表?
- 如果是,是否还有一种方法可以查询每个代码的实际作用?