delphi - 实际上在 services.msc 打开时**删除**服务

标签 delphi winapi service

我注意到,如果 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/

相关文章:

delphi - 通过客户端-服务器断开连接管理 SQLConnection/Datasnap

c++ - 如何在 64 位 Windows 中制作 OpenGL 应用程序?

android - 前台服务被操作系统杀死

delphi - Firemonkey ScrollBox 错误

delphi - 如何更改启用主题的控件的字体颜色?

web-services - 有人使用带有 Delphi 的 Bing map Web 服务吗?

C++:尝试 Hook 消息框并更改其位置

winapi - 了解 WTSEnumerateSessions 中的 session 信息

mysql - Windows Insider 服务每 30 分钟自动启动一次,导致 mysql 崩溃

android - Activity 崩溃后如何自动重启?