前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【.NET】几行代码识别.NET程序进程(包括.NET FX和.NET CORE+)

【.NET】几行代码识别.NET程序进程(包括.NET FX和.NET CORE+)

作者头像
Wesky
发布2024-08-13 18:53:10
1260
发布2024-08-13 18:53:10
举报
文章被收录于专栏:Dotnet Dancer

前言:如果想要知道自己系统上运行的进程,有哪些是.NET开发的,就可以参考以下的方式。

1、获取系统当前运行的所有.net framework进程和ID

我不知道哪些是fx环境的,所以自己先创建一个.net framework的程序备用,例如 winform程序。然后运行。

编写检测代码,并输出所有fx进程和id

代码语言:javascript
复制
var category = new PerformanceCounterCategory(".NET CLR Memory");
            string[] instanceNames = category.GetInstanceNames();
            var processes = Process.GetProcesses();

            foreach (string instanceName in instanceNames)
            {
                var matchingProcesses = processes.Where(p => p.ProcessName.Equals(instanceName, StringComparison.OrdinalIgnoreCase)).ToList();

                foreach (var process in matchingProcesses)
                {
                    Console.WriteLine($"进程: {process.ProcessName}, ID: {process.Id}");
                }
            }
代码语言:javascript
复制

运行效果:

进程查看:

2、识别.net core/.net 5以及以上版本的进程

本地应该还没有程序,所以创建一个.net core控制台,并运行,备用。例如一直输出1~10000

编写检测.net core或以上环境的进程的代码:

代码语言:javascript
复制
foreach (var process in Process.GetProcesses())
            {
                try
                {
                    if(process.Modules.OfType<ProcessModule>().Any(module =>
                        module.ModuleName.Equals("coreclr.dll", StringComparison.OrdinalIgnoreCase) ||
                        module.ModuleName.Equals("hostpolicy.dll", StringComparison.OrdinalIgnoreCase)))
                    {
                        Console.WriteLine($"进程: {process.ProcessName}, ID: {process.Id}");
                    }
                }
                catch
                {
                    continue;
                }
            }
代码语言:javascript
复制

运行程序,测试结果如下。由于测试程序本身也是.net 6项目,所以一起被是别出来了。

以上就是全部内容,是不是觉得太过于简单了?欢迎大佬们点赞、在看、或转发~感谢各位~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dotnet Dancer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档