【问题标题】:Monitoring a process in Windows在 Windows 中监视进程
【发布时间】:2009-08-13 21:41:57
【问题描述】:

如何监视 Windows 进程并在它未运行时启动它?我想要一个作为 Windows 服务启动并且可以处理多个进程的东西。

编辑: 希望有一个现成的库/组件我可以使用,只需调整或配置,而不必从头开始实现它。我知道 *nix 世界中有两个流行的包:god 和 monit。

【问题讨论】:

    标签: windows windows-services monitoring process


    【解决方案1】:

    您可以创建一个仅监视当前进程列表的 Windows 服务。

    EnumProcesses 提供了查看当前正在运行的进程的方法。有许多 API 可用于启动新进程,包括:

    • 系统()
    • _exec()
    • WinExec()
    • ShellExecute()/ShellExecuteEx()
    • CreateProcess()
    • CreateProcessAsUser()
    • CreateProcessWithLogonW()

    如果您使用其他语言/框架,它们通常会为上述内容提供自己的包装器。

    【讨论】:

    • 你知道什么已经做到了(而不是重新发明轮子)?
    • 没有。但是,使用 .NET 语言执行此操作非常简单 - 您可以使用可能少于 50 行代码的服务来执行此操作。 (上述大多数函数在 System.Diagnostics 命名空间中都有高级包装器,例如 Process 类,这使得这变得微不足道。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    相关资源
    最近更新 更多