C#:找到当前进程

时间:2009-04-25 07:28:41

标签: c#

如何在不使用系统进程的情况下获取当前正在运行的应用程序?

4 个答案:

答案 0 :(得分:6)

这取决于你的目标。如果您对呼叫您的程序集感兴趣,那么您可以使用GetCallingAssembly。您也可以使用GetExecutingAssembly

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这里有轻微的误解。在任何给定的机器上,可以有多个当前运行过程。考虑机器有多个CPU的情况。事实上,每个CPU至少可以运行一个单独的线程,这是可能的。很有可能在任何给定时间,当前在机器上运行的进程数量将接近系统上的处理器数量。

对于单个处理器,获取当前运行进程的行为是多余的。它只是你的应用程序。

如果要在不使用Process类的情况下调查当前计算机上运行的进程,可以将PInvoke引入Process32First和Process32Next系统调用。

答案 3 :(得分:0)

如果您使用的是.NET,无论您最终使用什么机制,请确保您注意.NET代码访问安全性。阅读MSDN文档,了解您使用的类,方法是否需要完全信任。如果您的应用程序应在部分信任或特权较低的信任环境中运行,则可能会出现问题。