[英]How can i monitor the process using c#?
我希望我的應用程序監視並記錄在我的應用程序存在期間在winxp機器中啟動和終止的進程。 我不想得到所有正在運行的進程名稱。 我怎樣才能實現這一目標? 任何想法贊賞..謝謝。
您可以使用WMI。 這是一篇文章: 使用WMI監視.NET中的進程創建,刪除和修改
最簡單的方法是,無需掛鈎任何Windows內部,就是經常輪詢正在運行的進程列表。
using System.Diagnostics;
// Poll every 5 seconds
while(true)
{
// Get a list of running processes
Process[] processlist = Process.GetProcesses();
// Do logging
// ...
Thread.Sleep(5000);
}
使用WMI ...請參閱此內容以獲取介紹。
您可以使用Process.GetProcesses
列出所有進程。
然后,您可以監視返回的流程數組中的每個流程。
public static void Monitor()
{
ArrayList existingProcesses = GetExistingProcess();
while (true)
{
ArrayList currentProcesses = new ArrayList();
currentProcesses = GetCurrentProcess();
ArrayList NewApps = new ArrayList(GetCurrentProcess());
foreach (var p in ExistingProcess)
{
NewApps.Remove(p);
}
string str = "";
foreach (string NewApp in NewApps)
{
str = "Process Name : " + NewApp + " Process ID : " + System.Diagnostics.Process.GetProcessesByName(NewApp)[0].Id.ToString() + " ";
}
MessageBox.Show(str);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.