我是Stack Overflow的新手。
我认为我从一个令人费解的问题开始。 如何监视系统并检测何时创建新进程以及何时关闭它们。
我不知道如何做到这一点,每隔一段时间不断更新的列表框轮询System.Diagnostics.Process.GetProcesses()。
我需要一个监视器,在添加新进程时触发事件,并在进程关闭时触发单独的事件。
我没有寻找在循环或计时器上运行的进程监视器。我需要一个到进程列表的直接接口,所以这个线程.NET Process Monitor 不回答我的问题。 想法?
- Caustic
答案 0 :(得分:0)
您可以使用Process.GetProcessesByName方法(字符串)来查找特定进程是否正在运行。
System.Diagnostics.Process[] proc = System.Diagnostics.Process.GetProcessesByName(sProcessName);
if (proc.Length > 0)
{
MessageBox.Show(String.Format("{0}is running!", sProcessName), sProcessName);
}
else
{
MessageBox.Show(String.Format("{0}is not running!", sProcessName), sProcessName);
}
答案 1 :(得分:0)
我会使用TraceEvent来启动Realtime Session并激活提供商Microsoft-Windows-Kernel-Process
在代码中,您可以看到ProcessStart
和ProcessStop
处理,在这里您可以添加自己的代码来处理获取此数据的时间。