• 使用 c# 调用进程相关开发


       最近在维护公司的以前项目中发现,使用到了进程相关知识。现在将此总结,以备后面查看复习。

    一、进程查看器
       
     程序在运行的时候,操作系统就会为其分配一个进程。那么进程到底是什么东西呢?
     实际上,进程就是一些数据资源和一些代码(这里执行的代码可以看做线程)。
     
     在.net中提供了一个命名空间“using System.Diagnostics;”,里面的Process类可以实现进程检查的能力。
     下面介绍下这个类的简单使用。
     1、process.GetProcessById(int processId);//根据指定的进程id查询该进程
     2、process.GetProcessByName();//根据进程名查询该进程
     3、process.GetProcess();//获取所有进程,返回:process[]
     
     说明:①带远程计算机名字符串时,可以进行远程访问
            Process[] myProcess=Process.GetProcess("远程计算机名")
         或
         Process[] myprocess=Process.GetProcessByName("远程计算机名","进程名");
        
    二、进程属性
        通过上面的方法我们可以得到进程对象,我们还可以根据进程得到很多其他数据。
        PriorityClass---进程优先级的类别   
     BasePriority----进程优先级的数字表示
        MachineName-----计算机名
     Modules---------关联进程加载的模块
     MainModule------关联进程的主模块
     ProcessName-----进程名
     WorkingSet64----获取进程分配的物理内存
     stratTime-------获得进程启动时间
     
     源码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
    
    namespace Demo
    {
        class Program
        {
            static void Main(string[] args)
            {
                int num = 0;//计数
                Process [] pro=Process.GetProcesses();
                for (int i = 0; i < pro.Length; i++)
                {
                    string p=pro[i].ProcessName.ToString();
                    string startTime=(pro[i].StartTime).ToString();
                    string basePriority = (pro[i].BasePriority).ToString();
                    string MachineName = pro[i].MachineName;
                    string WorkingSet64 = (pro[i].WorkingSet64).ToString();
                    Console.WriteLine("进程名:{0}", p);
                    Console.WriteLine("进程启动时间{0}", startTime);
                    Console.WriteLine("进程优先级{0}", basePriority);
                    Console.WriteLine("计算机名{0}", MachineName);//由于是本机,所以是”.“
                    Console.WriteLine("进程物理内存{0} KB", WorkingSet64);
                    Console.WriteLine("*************************************************************************************************");
                    Console.WriteLine();
                    num++;
                }
                Console.WriteLine("总共进程:{0}",num);
                
            }
        }
    }
    View Code
    如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一瓶冰峰【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!

    作者:杨朋飞
    出处:http://www.cnblogs.com/ypfnet/
    本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利

  • 相关阅读:
    常见面试题
    Spring boot 集成ckeditor
    SchuledExecutorService 使用controller控制线程关闭
    sql用法
    Spring Boot 全局异常配置
    前端错误提示whitelabel error page
    github使用方法
    前端迭代取出 后台map返回的数据
    Codeforces Beta Round #31 (Div. 2, Codeforces format)
    Codeforces Beta Round #29 (Div. 2, Codeforces format)
  • 原文地址:https://www.cnblogs.com/ypfnet/p/3150313.html
Copyright © 2020-2023  润新知