将Windows消息发送到Windows服务

dev*_*ull 8 .net c# winapi windows-services shutdown

是否有任何工具可以向Windows服务发送(模仿)像'WM_ENDSESSION'这样的Windows消息?

要么

如何使用C#向进程发送Windows消息?

(我只知道C#)

编辑:目的:基本上我必须调试Windows服务来修复仅在系统关闭时发生的错误.

Dia*_*ami 11

应使用ServiceController类控制服务

您可以使用它来启动,停止和与服务通信.


Row*_*haw 4

通常,服务没有窗口(更不用说消息泵)来接收窗口消息。

如果错误确实只在关闭时发生(而不是仅仅停止服务),则可能是某些东西依赖于正在消失的资源,而该资源没有得到妥善处理(在这种情况下,错误修复可能是为了正确设置服务依赖项)。您是否尝试过在关闭之前使用远程调试工具附加到进程?

值得研究一下是否可以在不关闭的情况下发生问题,也许只是使用服务控制管理器停止服务时(不需要以编程方式执行此操作,因为这是一个调试场景),在这种情况下,您可以在 OnStop 上设置断点() 在你的服务中(我假设是 C#)并观察会发生什么。