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