http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3439|回复: 3

[其他] c#判断系统进程和用户进程

[复制链接]
发表于 2013-10-13 22:41:45 | 显示全部楼层 |阅读模式
如题:

用Process类取到所有进程,怎么识别哪些是系统进程哪些是用户进程

或者有其它思路区别进程吗?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-10-14 08:32:57 | 显示全部楼层
这个其实也不难看下面代码
[code=csharp] private void Form1_Load(object sender, EventArgs e)
        {
            //获取系统中的进程   
            System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcesses();
            foreach (System.Diagnostics.Process myProcess in myProcesses)
            {
                string processname = myProcess.ProcessName;
                //进程用户名
                string username = GetProcessUserName(myProcess.Id);
            }
        }

        //获得进程的用户名
        private static string GetProcessUserName(int pID)
        {
            string result = string.Empty;
            SelectQuery query1 = new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);
            ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);
            try
            {
                foreach (ManagementObject disk in searcher1.Get())
                {
                    ManagementBaseObject inPar = null;
                    ManagementBaseObject outPar = null;
                    inPar = disk.GetMethodParameters("GetOwner");
                    outPar = disk.InvokeMethod("GetOwner", inPar, null);
                    result = outPar["User"].ToString();
                    break;
                }
            }
            catch
            {
                result = "SYSTEM";
            }

            return result;
        }[/code]
需要添加对 System.Management.dll 的引用


[code=csharp] //进程用户名
                string username = GetProcessUserName(myProcess.Id);[/code]
这里是获取的进程的用户名,你把系统用户分一下类,根据用户名就能判断出来是不是系统进程了
自己测试下吧


 楼主| 发表于 2013-10-14 10:00:30 | 显示全部楼层
原来是这样的思路,谢谢飞哥
发表于 2013-10-14 10:02:00 | 显示全部楼层
恩就是这样的,我结帖了
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-23 09:37

© 2014-2021

快速回复 返回顶部 返回列表