好的,我没有遗嘱的第二部分权力实验是:

摘要问题 - 有没有办法动态设置Windows服务上的CanStop属性?

整个Spiel - 我有一个服务,目前检查和杀死进程(IE游戏)我告诉它,如果它是我不被允许的一天。大。我将CanStop设置为false,这样如果我放弃上瘾,我就不能杀死它。我有一个程序将进行密码检查(其他人输入密码),如果密码正确,将停止服务。 (如果我有严重的提款)问题是使用ServiceController类。

我可以告诉我,ServiceController只是一个装饰器(yah design patern guess),因此我无法获得它代表的实际服务。第一次尝试是财产信息,但我太愚蠢了,没有意识到什么是毫无意义的。第二个是Field Info,因为我认为可能有一个“代表”的私人领域。服务。正如你猜测的那样,都失败了。

有什么想法吗?

编辑1 我想避免在某个地方轻松拥有CanStop值,就像配置文件或注册表一样。所以我试图在程序中完全处理这个问题,但不是成功的。

新(失败)尝试:

  

ManagementObject服务;   ManagementBaseObject stopService;

     

service = new   的ManagementObject(QUOT; Win32_Service.Name = 'StopProgram' &QUOT);

     

stopService = service   .InvokeMethod(" StopService",null,   空);

不确定这有什么用。我认为由于CanStop的情况,它无法停止。

有帮助吗?

解决方案

“CanStop”是Windows服务控制管理器中服务注册的属性。你无法在中途改变它。

当然,如果你足够聪明地编写自己的服务,那么你就足够聪明地培养任务人员并简单地终止服务流程。 CanStop不会阻止您从服务中拉出地毯。 CanStop仅告知服务控制管理器不发送“停止”消息。命令服务。

如果您想允许某些内容传递,请使用全局事件启用/禁用服务检查 - 或者只是从PC中删除游戏! : - )

其他提示

您可以在某个地方设置标记(如注册表或文件),然后在执行您尝试控制的事件之前由服务进行检查,而不是尝试直接访问和控制服务。 / p>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top