如何查看.NET程序是否正在运行

时间:2010-12-17 14:57:21

标签: .net

是否可以确定Microsoft .NET程序是否在Windows计算机上运行?

3 个答案:

答案 0 :(得分:2)

如果有一个或多个正在运行的具有提供名称的进程,则以下内容将返回true。

    public bool IsProcessRunning(string processName)
    {
        return Process.GetProcessesByName(processName).Length != 0;
    }

答案 1 :(得分:2)

如果您正在尝试识别.NET明确的进程/应用程序,那么您应该在进程中查找特定于.NET框架的依赖项/模块。

下面我正在使用mscorlib,因为这是第一个想到的,因为我提示要确定该进程依赖于.NET框架。 e.g。

        var processes = Process.GetProcesses();
        foreach (var process in processes)
        {
            try
            {
                foreach (var module in process.Modules)
                {
                    if (module.ToString().Contains("mscorlib"))
                    {
                        Console.WriteLine(process);
                        break;
                    }
                }
            }
            catch { // Access violations }
        }

这不是防弹,因为某些进程由于访问限制而无法枚举其模块,但如果运行它,您将看到它将撤回.NET依赖进程。也许它会给你一个很好的起点,让你思考正确的方向。

答案 2 :(得分:1)

查看CorPublishLibrary - 一个库,可让您查询计算机上运行的所有托管代码进程。

alt text