好的,所以我没有意志力实验的第二部分是:
摘要问题 - 有没有办法在 Windows 服务上动态设置 CanStop 属性?
Whole Spiel - 我有一项服务,目前正在检查和终止进程(IE 游戏),我已经告诉它,如果那天我不允许。伟大的。我将 CanStop 设置为 false,这样如果我沉迷其中,就不能直接终止服务。我有一个程序将进行密码检查(其他人输入密码),如果密码正确,它将停止服务。(如果我有严重的提款)问题是使用 ServiceController 类。
据我所知,ServiceController 只是一个装饰器(是的设计模式猜测),所以我无法获得它所代表的实际服务。第一次尝试是属性信息,但我太笨了,没有意识到那是没有意义的。其次是字段信息,因为我认为可能有一个“代表”服务的私有字段。正如您可能猜到的那样,两者都失败了。
有任何想法吗?
编辑 1 我想避免将 CanStop 值放在我可以像配置文件或注册表一样轻松获取的地方。所以我正在尝试,虽然没有成功,但在程序中完全处理这个问题。
新的(失败的)尝试:
管理对象服务;ManagementBaseObject 停止服务;
service = new ManagementObject("Win32_Service.Name='StopProgram'");
stopService = service .InvokeMethod("StopService", null, null);
不确定这有什么作用。我认为由于 CanStop 情况它无法停止。