2009-04-25 65 views
0

如何在不使用系統進程的情況下獲取當前正在運行的應用程序?C#:找到當前進程

+0

說真的,需要更多細節。如何處理一些背景和更長的問題,以便我們提供最佳答案。並請拼寫正確... – 2009-04-25 07:35:26

回答

0
System.Diagnostics.Process.GetProcesses("MACHINEHAME") 
0

這裏有輕微的誤解。在任何給定的機器上都可以有多個當前運行過程。考慮機器具有多個CPU的情況。事實上很有可能每個CPU至少有一個單獨的線程在其上運行。在任何特定時間,機器上當前運行的進程數量將接近系統上的處理器數量的可能性很大。

在單個處理器的情況下,獲取當前運行過程的行爲是多餘的。它只是你的應用程序。

如果您想調查在當前機器上運行的進程而不使用Process類,則可以將PInvoke轉換爲Process32First和Process32Next系統調用。

0

如果您使用.NET,無論您最終使用哪種機制,請確保您注意.NET代碼訪問安全性。閱讀MSDN文檔,看看您使用的類,方法是否需要完全信任。如果您的應用程序應該在部分信任環境或權限較低的信任環境中運行,則這可能是一個問題。