【问题标题】:C# Process Start and Stop Service [duplicate]C#进程启动和停止服务[重复]
【发布时间】:2011-12-14 07:28:51
【问题描述】:

可能重复:
C# Process Monitor

我正在尝试编写一个 Windows 服务来检测我的一台服务器上进程的启动和关闭。如果我自己启动应用程序,而不是其他进程,我似乎可以使用 Process 对象轻松获取这些信息。这听起来像是一个很服务的写,但没有取得任何进展。

【问题讨论】:

标签: c# windows process


【解决方案1】:

最好的办法是使用 WMI。对该远程服务器进行 RPC 调用,正确进行身份验证,然后使用 WMI 进行查询以检索正在运行的进程。

【讨论】:

  • 让进程运行,不是问题,但检测它们何时关闭是我卡住的地方,无法检测到进程停止。
【解决方案2】:

您可以使用OpenProcess 函数为当前正在运行的每个进程打开一个进程句柄。您只需要进程 ID。然后,您可以在您喜欢的任何等待功能中使用进程句柄;当相应的进程退出时,它们会发出信号。

检测新进程何时启动更难。如果对新进程的轮询不满意,则需要编写设备驱动程序并使用PsSetCreateProcessNotifyRoutine 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多