簡體   English   中英

如何使用c#監控進程?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM