我注意到,如果 services.mmc
打开,sc delete ServiceKeyName
将不起作用。它会将其标记为删除(无论如何!这只是意味着就我而言,它没有做我想做的事)。
我的问题是:是否有一种删除服务的方法,无论 services.mmc
是否打开都有效?或者我应该确保在尝试删除 services.mmc
的任何实例之前将其关闭?
我正在考虑使用DeleteService
http://msdn.microsoft.com/en-us/library/ms682562%28v=VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms682571%28v=VS.85%29.aspx
但它也谈到了关闭句柄和类似的借口,以解释为什么它不能立即执行用户要求执行的操作。因此,如果 DeleteService
还要求关闭 services.mmc
,那么我将坚持使用 sc delete
并终止 上的进程>services.mmc
而不是实现 DeleteService
。我想要一种能够实现其所宣传的功能的方法(没有借口 - 无需等待任何事情)。
最佳答案
为了实现此目的,您需要服务 MMC 管理单元来关闭并重新打开其服务控制管理器的句柄。它不会这样做,因此您必须按原样接受这种行为。
关于delphi - 实际上在 services.msc 打开时**删除**服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7072884/