簡體   English   中英

C#Process.GetProcessById(4)引發System.ComponentModel.Win32Exception

[英]C# Process.GetProcessById(4) throws System.ComponentModel.Win32Exception

我正在編寫一段代碼,以便遍歷系統進程加載的模塊列表(PID:4)。 以下是我用來實現它的代碼。

Process process = Process.GetProcessById(4);
foreach (ProcessModule pMod in process.Modules)
{
    Console.Write(pMod.FileName + "   ");
}
Console.WriteLine();

每當嘗試評估模塊列表時,此代碼都會引發System.ComponentModel.Win32Exception錯誤。 實際上,任何屬性讀取或方法調用都將引發相同的錯誤。 任何其他進程都可以正常工作,並且能夠正確列出所有模塊。 任何人都可以闡明可能導致此行為的原因。

System “進程”(在Windows計算機上為PID 4)實際上根本不是一個進程,它表示一組具有SYSTEM完整性的進程。

嘗試使用實際的進程PID(例如,運行Internet Explorer,並使用它的PID),看看是否會得到異常。

系統進程不是真正的用戶模式進程,它是Windows內核(需要更好的描述)。 因此,無法像正常過程一樣對其進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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