我可以在不编写系统级代码的情况下检测 Windows 进程何时启动吗?

Pro*_*ofK 0 windows monitoring powershell command-line process

有没有什么办法可以通过性能监控、WMI 或者其他免费的工具来检测某个特定进程何时启动,或者更好的是,即将启动?然后,进一步捕获传递给该进程的入口点函数的命令行参数。

仅仅检测到该进程在某个时间已经启动并且已经在运行对于我的要求没有任何价值。我有 Visual Studio 启动 Chrome 进行调试会话,我想 a) 找出 VS 是否使用 cmd.exe 启动 Chrome,或 VS 内部的一些代码,以及 b) VS 传递给 Chrome 的哪些参数来配置它用于集成调试。

或者是否有某种方法可以使用 PowerShell 在进程映像(即 .exe 文件)上放置某种监视,以查看它何时被访问以执行?

mus*_*ear 5

您很可能想要观看启动流程的流程,而不仅仅是目标流程本身。

SysInternals 的Process Monitor应该能够捕捉到这一点。

筛选 Visual Studio 进程(可能也适用于 CMD 和 Chrome),在 VS 中触发调试序列,然后查看捕获的内容。

另一个选项,同样来自 SysInternals,将是Process Explorer,基本上是类固醇上的任务管理器,它捕获启动每个进程的参数。如果 VS 启动一个中间件,然后打开 Chrome 并且该中间件仍然作为 Chrome 进程的父进程运行,进程资源管理器将向您显示任何传递的参数。